一开始没有什么头绪,后来注意到m<=10,考虑是否可以用dp[i][j]表示第i位,前面跟了j个数的最大值

那么第i+1个数,直接和第i个数的[0,m]的m+1种状态去转移即可,如果是由0或m状态拓展出去的,那么值要-k

策略和序列最大连续子段和的贪心策略一样

#include<bits/stdc++.h>
using namespace std;
#define N 300005
#define ll long long
#define INF 0x3f3f3f3f3f3f3f3f
ll dp[N][],n,a[N],m,k; int main(){
cin>>n>>m>>k;
for(int i=;i<=n;i++)scanf("%lld",&a[i]);
for(int i=;i<=n;i++)
for(int j=;j<=m;j++)
dp[i][j]=-INF; long long ans=;
dp[][]=;
for(int i=;i<n;i++){
dp[i+][]=;
for(int j=;j<=m;j++)if(dp[i][j]!=-INF){
if(j==)
dp[i+][]=max(dp[i+][],dp[i][j]+a[i+]-k);
else if(j!=m)
dp[i+][j+]=max(dp[i+][j+],dp[i][j]+a[i+]);
else dp[i+][]=max(dp[i+][],dp[i][j]+a[i+]-k);
ans=max(ans,dp[i+][j+]);
ans=max(ans,dp[i+][]);
}
}
cout<<ans<<endl;
}

最新文章

  1. Win10 连接L2TP VPN 失败解决方法
  2. HTML5 UI框架Kendo UI Web中如何实现Grid网格控件本地化
  3. WEB安全--CSRF防御
  4. Bootstrap 内核引用(一)
  5. 【Python】Markov text generator马尔科夫文字生成器
  6. Python之系统交互(subprocess)
  7. (luogu P1383)高级打字机
  8. [Swift]LeetCode328. 奇偶链表 | Odd Even Linked List
  9. SpringBoot前后端分离Instant时间戳自定义解析
  10. HDU 6432(不连续环排列 ~)
  11. java笔记 -- java简单结构代码解析及注释
  12. 洛谷 P1571 眼红的Medusa【二分查找】 || 【map】
  13. DataSet &amp; DataTable &amp;DataRow 深入浅出
  14. Java基础-SSM之Spring和Mybatis整合案例
  15. flashsim配置2015最新版本
  16. SNMP学习笔记之SNMP TRAP简介、流程以及使用Python实现接受Trap信息
  17. GBDT 简述
  18. 从 php 源码看 php 中的对象
  19. python学习笔记(22)--漫画生成html最终版
  20. 解决maven install报错信息(Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:compile )

热门文章

  1. delphi 运行时提升软件到管理员权限
  2. git代码提交步骤
  3. xcode Delete current line
  4. Elasticsearch搜索查询语法
  5. linux 日志文件查看
  6. django的model继承abstract,proxy,managed
  7. UVA1152_4 Values whose Sum is 0
  8. Python面试题之这两个参数是什么意思:*args,**kwargs?我们为什么要使用它们?
  9. 13-vim-复制和粘贴-01-复制和粘贴
  10. 微服务-技术专区-链路追踪(pinpoint)-部署使用