problem
- 给你一个长为n的序列
- 求一个长不超过m的连续子段,使子段和最大
solution
- 如果n<=10^3,我们很容易写出枚举(s是前缀和,区间[l,r]的和就是s[r]-s[l-1]。枚举l,r即可。
- 但是这里是10^5,,所以考虑进一步优化。
- 如果右端点是i,那么就转为求一个左端点j属于[i-m,i-1]并且s[j]最小。并且j越靠近m一定是越优的(在后面更不容易超过m。
- 所以选择集合一定是,“下标位置递增,对应前缀和s也递增”的序列,我们可以用队列保存这个序列。
codes
上一篇:【codevs1621】混合牛奶
java for循环倒序输出
问题 B: 最大子序和题目描述输入一个长度为n的整数序列,从中找出一段不超过M的连续子序列,使得整个
题目描述输入一个长度为n的整数序列,从中找出一段不超过M的连续子序列,使得整个序列的和最大。
传送门题意输入一个长度为n的整数序列,从中找出一段不超过m的连续子序列,使得整个序列的和最大。思路
X86架构和ARM架构是主流的两种CPU架构,X86架构的CPU是PC服务器行业的老大,ARM架构的CPU则是移动端的老大。 X86架构和arm架构实际上就是CISC与RISC之间的区别,很多用户不
举报文章
请选择举报类型
补充说明
0/200
上传截图
格式支持JPEG/PNG/JPG,图片不超过1.9M