选取数对
给定一个长度为 n 的整数数列 a1,a2,…,an。

请你选择 k 个数对 [l1,r1],[l2,r2],…,[lk,rk],要求所选数对满足:

1≤l~1~≤r~1~<l~2~≤r~2~<…<l~k~≤r~k~≤n。
对于 1≤i≤k,ri−li+1=m 均成立。
请你输出 sum 的最大可能值。

输入格式
第一行包含三个整数 n,m,k。

第二行包含 n 个整数 a1,a2,…,an。

输出格式
一个整数,表示 sum 的最大可能值。

数据范围
前 6 个测试点满足 1≤m×k≤n≤20。
所有测试点满足 1≤m×k≤n≤5000,0≤a~i~≤10^9^。

输入样例1:
5 2 1
1 2 3 4 5
输出样例1:
9
输入样例2:
7 1 3
2 10 7 18 5 33 0
输出样例2:
61

闫式dp分析法
状态表示f[i][j]:表示在前i个数中选,j个区间的所有集合,属性:max
状态计算f[i][j]:根据最后一个区间是否包含最后一个点i来进行集合划分
1.不包含:f[i][j]=max(f[i][j],f[i-1][j])
2.包含:f[i][j]=max(f[i][j],f[i-m][j-1]+sum[i]-sum[i-m]) //如果包含i的话最后一个区间的右端点就是i

#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
using namespace std;const int N=5010;
typedef long long LL;
int a[N];
LL sum[N];
LL f[N][N];
int n,m,k;int main(){cin>>n>>m>>k;for(int i=1;i<=n;i++){cin>>a[i];sum[i]=sum[i-1]+a[i]; //前缀和}for(int i=1;i<=n;i++){for(int j=1;j<=k;j++){f[i][j]=f[i-1][j];if(i-m+1>=1){LL num=f[i-m][j-1]+sum[i]-sum[i-m];f[i][j]=max(f[i][j],num);   }}}cout<<f[n][k]<<endl;return 0;
}

acwing 4378相关推荐

  1. AcWing 734. 能量石 (01背包)+(贪心 - 领项交换)

    AcWing 734. 能量石 #include<cstdio> #include<algorithm> #include<cstring> #include< ...

  2. 解题报告:AcWing 352. 闇の連鎖(树上差分、方案统计)

    https://www.acwing.com/problem/content/354/ 在没有附加边的情况下,我们发现这是一颗树,那么再添加条附加边(x,y)后,会造成(x,y)之间产生一个环 如果我 ...

  3. acwing算法题--铁路与公路

    原题链接:https://www.acwing.com/problem/content/description/4077/ #include <iostream> #include < ...

  4. acwing算法题--看图做题

    原题链接:https://www.acwing.com/problem/content/3992/ 找规律题 #include<iostream>using namespace std;i ...

  5. acwing算法题--不同的数

    原题链接:https://www.acwing.com/problem/content/3991/ #include <iostream> #include <unordered_m ...

  6. acwing算法题--分组背包问题

    原文链接:https://www.acwing.com/problem/content/9/ #include <iostream>using namespace std;const in ...

  7. acwing算法题--二维费用的背包问题

    原题链接:https://www.acwing.com/problem/content/8/ #include <iostream>using namespace std;const in ...

  8. acwing算法题--混合背包问题

    原题链接:https://www.acwing.com/problem/content/7/ #include <iostream> #include <vector>usin ...

  9. acwing算法题--多重背包问题二

    原题链接:https://www.acwing.com/problem/content/5/ #include <iostream> #include <vector>usin ...

最新文章

  1. 【转】Vue.js 2.0 快速上手精华梳理
  2. 正交相机下实现滚轮按钮拖动,滚动滚轮缩放的功能
  3. Erlang模块gen_tcp翻译
  4. 2020计算机考研初试考试先后顺序,【图片】2020考研,老学长教你如何规划!【计算机考研吧】_百度贴吧...
  5. 通俗理解Paxos算法
  6. 三分钟总览微软任务并行库TPL
  7. 手把手教你爬虫requests实战演练——python篇
  8. 将Ubuntu安装到U盘
  9. python后端开发书籍_后端书籍推荐
  10. 力扣题目——107. 二叉树的层序遍历 II
  11. OpenCV2:幼儿园篇 第七章 界面事件
  12. python图片ocr识别手写印刷体中英文字体
  13. 使用Python批量抓取单词发音
  14. Linux系统下VMware虚拟机安装Win7 ISO操作系统
  15. STM32的内部参照电压VREFINT(1.2V)和ADC参考电压Vref+如何区分呢
  16. html最多显示两行,css 实现两行或多行文本溢出显示省略号(...)
  17. 计算机C语言二级操作题之编程题
  18. 关于netty的@Sharable注解含义,你可bie瞎说了
  19. python import seaborn as sns 显示中文问题
  20. 波束形成 基于对角加载的稳健自适应波束形成

热门文章

  1. 开放合作,共赢未来 | 福昕鲲鹏加入金兰组织
  2. 马云创业语录 - 《赢在中国》
  3. 东华软件测试题,东华大学软件测试作业整理.docx
  4. 盛世昊通:万达进军汽车行业,不是造车而是汽车服务
  5. realloc函_realloc 函数的用法 以及 误区
  6. RabbitMQ单机部署
  7. php ajax access,转载:解决Ajax跨域 Access to XMLHttpRequest问题
  8. FSCaptureSetup截屏软件资源
  9. 如何避免使用过多的 if else?
  10. Potato靶机测试