全部评论
题意转化成:给一个数组然后找满足两个要求的最大的子段和,两个要求分别是:1、子段里的负数出现的次数不能超过m个,2、总和不超过K。 做法就是:转为前缀和数组pre_sum,m这个限制可以得到一个滑动窗口。在pre_sum上做这个滑动窗口,然后用一个带排序的可重集(在C++里是multiset)来维护窗口里的值。如果窗口的区间范围是[L,R],那就在multiset里找不大于pre_sum[L-1] + k 的最大的值X,用这个X-pre_sum[L-1]来更新答案。 应该就是这样了,一开始想复杂了,结果最后想出来没时间写了):
你这暴力法还不如 print(k) 还可以过 27 哈哈
dp只通过17%😅
我也是用暴力法,全部条件加完也是9%,把最大收益k的条件去掉就变成64%了,很神奇...
相关推荐
SJTU_ZHY:我之前今年2月确诊的,就是焦虑症外加抑郁症,我经过整整三个月才慢慢走出来,我这都已经算算非常幸运的了。经过这一个经历,现在除非是那种真的能要我命的事情我才表现的很焦急,其他的都干**去吧,老子活了二十多年不是为了生下来遭罪的。
***ing 求职和论文
点赞 评论 收藏
分享
逍遥生777:你找java的后端开发,那和java无关的项目就不用写了,剩余的项目写详细点
点赞 评论 收藏
分享