一开始我的想法是:
求得原数组,和最大的连续子区间,记录他的长度le
当加x次数(设为len)小于le的时候直接加到这个区间上
当加x次数(设为len)大于le的时候再枚举所有长度为len的连续子区间,然后求它们和的最大值 + len * x
如果,当前这种加法得到的连续子区间的和会超过之前的结果那就更新,不然就拿之前和当答案
结果没有考虑到
7 10
1 1 1 1 -10 2 2
或者是
7 10
2 2 -10 1 1 1 1
也有可能是我写拉了
上边的是没有考虑到相同的区间和选短的还是长的
我想法还有Bug,+x次数大于le的时候,并不是只能取长度为len的区间然后这个区间里面每个数+x
制裁样例:
5 5
3 5 -6 2 2
我这种写法真的是千疮百孔
乐的做法是枚举1~n每一种长度的区间最大值,然后从0到len枚举加几个x
这样的做法不重不漏,并且不会有恶心人的Bug
就这JB题,我De了差不多一天