题解:

单调队列+dp

f[i]=max(f[j-1]+sum[i]-sum[j])

然后维护f[j-1]-sum[j]单调性

代码:

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=;
int n,m,a[N],p[N];
ll sum[N],q[N],f[N];
int main()
{
scanf("%d%d",&n,&m);
for (int i=;i<=n;i++)scanf("%d",&a[i]);
for (int i=;i<=n;i++)sum[i]=sum[i-]+a[i];
f[]=a[];p[]=;q[]=-a[];
int l=,r=;
for (int i=;i<=n;i++)
{
if (p[l]+m<i)l++;
f[i]=sum[i]+q[l];
while (l<=r&&q[r]<=f[i-]-sum[i])r--;
p[++r]=i;q[r]=f[i-]-sum[i];
}
printf("%lld",f[n]);
}

最新文章

  1. 基于面向对象的图片轮播(js原生代码)
  2. 使用ASP.NET上传图片汇总
  3. arm嵌入式交叉编译工具链
  4. Mybatis 异常: The content of elements must consist of well-formed character data or markup
  5. 透过proxy进行docker pull(Centos6.8)
  6. 资源Createwindow,对应标识符,绑定窗口
  7. redis web 客户端工具 redis-admin
  8. Async/Await - Best Practices in Asynchronous Programming z
  9. 【转载】正则表达式学习 &amp; ASCII码表
  10. .NET开发作业调度(job scheduling) - Quartz.NET
  11. Pair Project: Elevator Scheduler [电梯调度算法的实现和测试]:刘耀先-11061183,罗凡-11061174
  12. RHEL7磁盘分区挂载和格式化
  13. uva10003 Cutting Sticks
  14. synchronized 与 Lock 的那点事
  15. MATLAB中的微积分运算(数值&amp;符号)
  16. 从DataTable中查询数据
  17. 图片和base64相互转化
  18. JAVA作业三
  19. JavaScript Array some() 方法
  20. vue-cil和webpack中本地静态图片的路径问题解决方案

热门文章

  1. 自旋锁原理及java自旋锁
  2. Mysql学习笔记—时间计算、年份差、月份差、天数差(转载)
  3. mysql中的多行查询结果合并成一个(转)
  4. java, android的aes等加密库
  5. java 多线程 day17 Exchanger
  6. 怎样使用CSS设置文字与文字间距距离?
  7. SQL面试题及答案
  8. uva1025 dp
  9. JS事件监听手机屏幕触摸事件 Touch
  10. PHP文件锁 解决并发问题