m 段 最大和 max sum plus plus
来源:互联网 发布:数据库质量控制 编辑:程序博客网 时间:2024/06/05 21:02
#include <stdio.h>#include <string.h>#include <string>#include <stdlib.h>#include <iostream>#include <algorithm>#include <sstream>#include <ostream>#include <ctype.h>#include <stack>#include <queue>#include <cmath>using namespace std;int arr[1000006];int dp[1000006];int maxx[1000006];int main(){ int n,m; while(scanf("%d %d",&m,&n)!=EOF) { memset(maxx,0,sizeof(maxx)); memset(dp,0,sizeof(dp)); for(int i=1;i<=n;i++) scanf("%d",&arr[i]); int maxxx; for(int i=1;i<=m;i++) { //maxx==0 表示没有选哦 maxxx=-2000000000; for(int j=i;j<=n;j++) { dp[j]=max(dp[j-1]+arr[j],maxx[j-1]+arr[j]);//当j==i时很精巧 滚动数组也有好处 maxx[j-1]=maxxx; maxxx=max(maxx[j-1],dp[j]); } } int mm=-2000000000; for(int i=m;i<=n;i++) mm=max(mm,dp[i]); cout<<mm<<endl; } return 0;}这个地方要注意状态转移的过程 再每次开始的时候必须由上一次开始转移 这个地方不能再选前面不转移。
0 0
- hdu Max Sum Plus Plus(最大m段子段和)
- hdu Max Sum Plus Plus(最大m段子段和)
- m 段 最大和 max sum plus plus
- hdu1024 最大M个子段和 Max Sum Plus Plus
- hdu1042 Max Sum Plus Plus【最大M子段和】
- hdoj Max Sum Plus Plus Plus 1244 (DP)m个连续段的最大和
- HDACM1024 max sum plus plus:m个不相交子段的最大和
- hdu 1024 Max Sum Plus Plus(dp && 最大m子段和)
- hdu 1024 Max Sum Plus Plus 最大m子段和
- HDU 1024 最大m段子段和 Max Sum Plus Plus
- hdu 1024 Max Sum Plus Plus (最大m子段和)
- 最大m子段和问题 Max Sum Plus Plus —— 动态规划
- hdu 1024 Max Sum Plus Plus(最大M子段和)
- NYOJ742 &HDU1024 - Max Sum Plus Plus(最大M子段和)
- HDU 1024 Max Sum Plus Plus[dp](最大m子段和)
- HDOJ-1024 Max Sum Plus Plus (最大M子段和问题)
- hdu 1024 Max Sum Plus Plus(最大m子段和)
- hdu 1024 Max Sum Plus Plus(最大m子段和)
- db2 v10.05windows安装及数据导入
- 各种照片尺寸和分辨率
- IMF 自定义Reduce函数,学习理解Apply、callback函数、泛型类型、iterator迭代器
- iOS解决导航栏标题向右偏移问题
- 流式大数据处理的三种框架:Storm,Spark和Samza
- m 段 最大和 max sum plus plus
- JQuery计数器+延时+从隐藏域取值赋值+页面加载自动运行
- BZOJ 4597: [Shoi2016]随机序列
- Java的线程池机制
- Android 5.0+ 解析(二)CardView控件
- 单调队列(双端队列) poj2823 hdoj3415 hdoj3530
- vim学习笔记
- 字符串的全排列
- Fragment(2)-在Activity中动态添加删除