A. Max Sum Plus Plus

Max Sum Plus Plus
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 12589 Accepted Submission(s): 4146

Problem Description
Now I think you have got an AC in Ignatius.L’s “Max Sum” problem. To be a brave ACMer, we always challenge ourselves to more difficult problems. Now you are faced with a more difficult problem.

Given a consecutive number sequence S1, S2, S3, S4 … Sx, … Sn (1 ≤ x ≤ n ≤ 1,000,000, -32768 ≤ Sx ≤ 32767). We define a function sum(i, j) = Si + … + Sj (1 ≤ i ≤ j ≤ n).

Now given an integer m (m > 0), your task is to find m pairs of i and j which make sum(i1, j1) + sum(i2, j2) + sum(i3, j3) + … + sum(im, jm) maximal (ix ≤ iy ≤ jx or ix ≤ jy ≤ jx is not allowed).

But I`m lazy, I don’t want to write a special-judge module, so you don’t have to output m pairs of i and j, just output the maximal summation of sum(ix, jx)(1 ≤ x ≤ m) instead. _

Input
Each test case will begin with two integers m and n, followed by n integers S1, S2, S3 … Sn.
Process to the end of file.

Output
Output the maximal summation described above in one line.

Sample Input
1 3 1 2 3
2 6 -1 4 -2 3 -2 3

Sample Output
6
8
Hint
Huge input, scanf and dynamic programming is recommended.

Author
JGShining(极光炫影)

题意:对应上面第二个案例,先输入一个数代表组数,然后输入多个数字,然后把这些数不能更改顺序的分成开头输入的数(可以有数不纳入任何一组内)得到最大值。比如第二列分为 6 -1 4 ------------------ 3 -2 3 两组之和为8
思路:这是一道dp题目,dp[i][j]记录着到第j个数为止把前面的数分为i组,并且第j个数要取得,所得到的最大值。
那么状态转移就是dp[i][j]=max(dp[i][j-1]+a[j],dp[i-1][i-1…j-1]+a[j])(其中后面指的是如果第j个数要自己独立成一组,那么就枚举组数为i-1的各种情况)
注意的是,为了防止空间溢出,就用2个滚动数组,pre[]记录着i-1的情况其中,pre[j]等价于dp[i-1]k的最大值

#include<iostream>
#include<algorithm>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<string>
typedef long long ll;
ll dp[1001000];
ll pre[1001000];
int a[1001000];
using namespace std;int main()
{int n,m;while(cin>>m>>n){for(int i=1;i<=n;i++)scanf("%d",&a[i]);ll mx=-999999999;memset(dp,0,sizeof(dp));memset(pre,0,sizeof(pre));for(int i=1;i<=m;i++){mx=-999999999;for(int j=i;j<=n;j++){dp[j]=max(dp[j-1],pre[j-1])+a[j];pre[j-1]=mx;mx=max(dp[j],mx);}}printf("%lld\n",mx);}}

kuangbin 基础DP1相关推荐

  1. [kuangbin带你飞]专题十二 基础DP1 题解+总结

    kuangbin带你飞:点击进入新世界 总结: 简单dp,最近在做,持续更新. 文章目录 总结: 1.Max Sum Plus Plus 2.Ignatius and the Princess IV ...

  2. [kuangbin带你飞]专题十二 基础DP1 C - Monkey and Banana HDU - 1069

    C - Monkey and Banana HDU - 1069 题目链接:https://vjudge.net/contest/68966#problem/C 题目: A group of rese ...

  3. [kuangbin带你飞]专题十二 基础DP1

    A - Max Sum Plus Plus (HDU 1024) 题意:将n个数取m段且不相交,求m段数字和最大值: dp[i][j]:前i个数字分成j段的最大值. 边界dp[0][0] = 0; d ...

  4. kuangbin 专题十二: 基础DP1 Tickets

    题目链接: 传送门 #include<cstdio> #include<cstring> #include<algorithm> using namespace s ...

  5. 【ACM】kuangbin基础数论专题

    知识补充:裴蜀定理 1.Bi-shoe and Phi-shoe 1.题意 给出一行数,求对应的数的欧拉函数值大于给出的数的数的最小和. 2.思路 我们知道素数表的欧拉函数值递增. 设素数a,b,b是 ...

  6. kuangbin带你飞专题合集

    题目列表 [kuangbin带你飞]专题一 简单搜索 [kuangbin带你飞]专题二 搜索进阶 [kuangbin带你飞]专题三 Dancing Links [kuangbin带你飞]专题四 最短路 ...

  7. kuangbin带你飞 专题1-23 题单

    kuangbin大神,对于打过ACM比赛的ACMer,无人不知无人不晓. 在此,附上vjudge平台上一位大神整理的[kuangbin带你飞]专题目录链接. [kuangbin带你飞专题目录1-23] ...

  8. [kuangbin]专题九 连通图 题解+总结

    kuangbin专题链接:https://vjudge.net/article/752 kuangbin专题十二 基础DP1 题解+总结:https://www.cnblogs.com/RioTian ...

  9. 老鱼的-kuangbin专题题解

    kuangbin专题问题一览 专题一 简单搜索 POJ 1321 棋盘问题 POJ 2251 Dungeon Master POJ 3278 Catch That Cow POJ 3279 Flipt ...

  10. 通过 Github Actions 部署 Mkdocs 文档

    Mkdocs 是一个采用 Python 构建轻量级的静态 HTML 在线文档框架,内置部署到 Github Pages 的功能.我用来创建实践指南,用来做个人的知识积累. 安装 Mkdocs 以及 M ...

最新文章

  1. Redis的学习记录
  2. 一款基于jquery ui的动画提交表单
  3. 3大主流前端框架对比
  4. 牛客题霸 NC17 最长回文子串
  5. 1-冒泡排序C实现(递增递减的简单转换)
  6. 2020中国移动阅读行业报告
  7. Django REST framework API开发
  8. PyCharm配置QTDesigner和ui2py工具
  9. linux磁盘相关命令
  10. 贺利坚老师汇编课程28笔记:使用附加段寄存器ES进行拷贝
  11. 推荐系统实战--movieslens数据集实现UserCF算法
  12. 获取某网站在alexa上的排名
  13. 阿里的活动宣传做得好 一百分!
  14. linux:常用命令
  15. js 按照中文拼音来排序
  16. ristretto255 point压缩和解压缩算法(1)——affine坐标系下
  17. 浏览器被毒霸占领这样去掉
  18. 不能用来修饰interface修饰的方法
  19. 【JavaScript】关于基本数据类型和引用数据类型
  20. n5095和n5100哪个好 n5095和n5100区别

热门文章

  1. 股市最好用的大数据软件_最实用的5款炒股软件
  2. 庞皓计量经济学第四版_庞皓计量经济学第4版笔记和课后答案
  3. Android 开机底层优化
  4. 网吧技术员应聘问卷你能答多少
  5. 魔兽服务器总是正在连接,魔兽世界怀旧服卡蓝条 服务器无法连接 排队太久解决办法汇总...
  6. 【学习】——提问的智慧
  7. a标签实现点击复制文本
  8. cad卸载工具_如何卸载AutoCAD 附上清理注册表方法
  9. 使用工具Android Studio实现一个简单的Android版的新闻APP之美
  10. Himall商城普通帮助类(四)