URAL 1247 Check a Sequence

来源:互联网 发布:my first story 知乎 编辑:程序博客网 时间:2024/06/07 03:35
最大区间和

题意:
给你一个n个元素的数组和一个常数k,问数组里任意一个区间是否都满足以下性质。
性质:对于区间[i,j],区间的和<=k+j-i+1
题目保证数组的和=n+k

数据范围:
n<=30000

思路:

没看懂题目保证的东西有什么卵用,而那个性质可以变成a[i]-1+a[i+1]-1+...+a[j]-1<=k。也就是说,我们把每个元素都减一,然后问题就变成,区间和<=k。所以我们求最大区间和,判断它是否大于k即可。

不会求?dp[i]表示以i为右端点的区间的最大区间和,递推式是dp[i]=max(dp[i-1]+a[i],a[i]),表示在前面的基础上加上自己,还是要另立门户。

总结:所有元素减一,求最大区间和,判断其是否大于k


0 0
原创粉丝点击