poj3061


转移自老blog

poj3061

链接

题意

        给定一个长度为n的正数序列,求和大于等于S的最短的子串长度。
        n<1e5 s<1e9

题解

        先考虑一个暴力做法,枚举所有的子串,此做法复杂度,n^2
        然后我们尝试dp,
        dp[i]代表串S[0:i]中以i结尾的和大于等于S的最大起点
        容易证明:dp[i]关于i单调不减
        于是我们的做法出来了,枚举i,对于j我们通过记录决策点,来优化成O(1)
        然后我惊讶的发现此做法竟然就是尺取法。

文章作者: fightinggg
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 fightinggg !
  目录