HDU - 1024 Max Sum Plus Plus

原创 2018年04月15日 13:48:13

一开始没摸清题目讲的范围,最后才理解只要m段连续不相交的子序列(不需要把数都用完)求和即可

求一个连续子序列之和最大,用动态规划,状态转移方程为dp[j]=max(0,dp[j-1])+num[j]

这题可以先求一个子序列时能得到的dp[]数组,再根据这个数组求加一个子序列时的dp[]数组
d[j]=max(pre[j-1],d[j-1])+num[j] 
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
using namespace std;
typedef long long ll;
const int inf=1e8;
const int N=1e6+5;
int dp[N],num[N],pre[N];

int main(){
	int m,n;
	ll Max;
	while(~scanf("%d%d",&m,&n)){
		for(int i=1;i<=n;i++)
			scanf("%d",&num[i]);
		dp[0]=0;
		memset(pre,0,sizeof(pre));
		for(int i=1;i<=m;i++){
			Max=-inf;
			for(int j=i;j<=n;j++){
				dp[j]=max(dp[j-1],pre[j-1])+num[j];
				pre[j-1]=Max;  
				if(Max<dp[j])
					Max=dp[j];
			} 
		}
		printf("%d\n",Max);
	}
	return 0;
}

hdu 1024 Max Sum Plus Plus(动态规划+m子段和的最大值)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1024 Max Sum Plus Plus Limit: 2000/1000 MS (J...
  • qiqi_skystar
  • qiqi_skystar
  • 2016-01-28 12:40:56
  • 3095

HDU1024 Max Sum Plus Plus(DP动态规划 最大子串和增强版)

Max Sum Plus Plus Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others...
  • u013021513
  • u013021513
  • 2015-08-23 21:12:43
  • 620

HDU - 1024 Max Sum Plus Plus (多段最大连续和+状态压缩)

Max Sum Plus Plus HDU - 1024 Now I think you have got an AC in Ignatius.L’s “Max Sum” problem. To...
  • HHH_go_
  • HHH_go_
  • 2017-05-03 19:36:50
  • 222

hdu 1024 Max Sum Plus Plus dp

代码: #include #include #include #include #include #include #include using namespace std; con...
  • a601025382s
  • a601025382s
  • 2014-07-18 16:19:40
  • 553

Hdu 1024 Max Sum Plus Plus

给你nn个数的序列,在这个序列中取mm个不相交的区间,使得这些区间的数的和最大题中没有给mm的范围。。。我以为是O(n×m)O(n \times m)会TLE的。。结果过了。。定义状态就是dpi,jd...
  • a1s4z5
  • a1s4z5
  • 2016-05-26 16:32:43
  • 133

杭电OJ——1024 Max Sum Plus Plus(另类的动态规划!)

Max Sum Plus Plus Problem Description Now I think you have got an AC in Ignatius.L's "Max Su...
  • lishuhuakai
  • lishuhuakai
  • 2012-10-13 15:13:51
  • 6836

【HDU】 `1024 Max Sum Plus Plus

Max Sum Plus Plus 题目链接 Max Sum Plus Plus题目大意 之前有个问题是让你求n个数的最大子段和,现在这个问题是让你求n个数的m段最大子段和…..题解 比之前那个问...
  • S_Black
  • S_Black
  • 2016-04-09 11:05:22
  • 246

计算任意个字串之最大和 (求一个最大子串和的加强版)

  • 2011年08月10日 00:13
  • 12KB
  • 下载

hdu1024HDU 1024 Max Sum Plus Plus(动态规划 很详很详解)

Max Sum Plus Plus Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Othe...
  • u013187393
  • u013187393
  • 2015-01-20 10:14:11
  • 1104

hdu Max Sum Plus Plus(最大m段子段和)

1、http://acm.hdu.edu.cn/showproblem.php?pid=1024 2、题目大意: 已知有n个数,求m段不相交的子段权值之和最大, 状态转移方程:dp[i][j]表...
  • sdjzping
  • sdjzping
  • 2013-03-07 12:09:36
  • 3656
收藏助手
不良信息举报
您举报文章:HDU - 1024 Max Sum Plus Plus
举报原因:
原因补充:

(最多只允许输入30个字)