杭电1024----Max Sum Plus Plus

Posted Jeson

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了杭电1024----Max Sum Plus Plus相关的知识,希望对你有一定的参考价值。

 1 /*
 2 这题还没有理解透彻。某个dalao也不写注释。只能自己理解了。。。
 3 先求为i个元素(1<=i<=M)为一个区间的最大和,保证元素个数大于等于i个,递推到M个即可
 4 借鉴原址:http://blog.csdn.net/java_wliang/article/details/14214303
 5 欢迎讨论
 6 */
 7 #include<cstdio>
 8 #define maxn 1000005
 9 #define inf 1<<30
10 #define Max(a,b) (a)>(b)?(a):(b)
11 int d[maxn],m[maxn],a[maxn];
12 void init(int n)
13 {
14     for(int i=0; i<n; ++i)
15         d[i] = m[i] = 0;
16 }
17 int main()
18 {
19     int n,M,ans;
20     while(~scanf("%d%d",&M,&n) && n+M)
21     {
22         init(n);
23         for(int i=1; i<=n; ++i)
24             scanf("%d",&a[i]);
25         for(int i=1; i<=M; ++i)
26         {
27             ans = -inf;
28             for(int j=i; j<=n; ++j)
29             {
30                 d[j] = Max(d[j-1]+a[j],m[j-1]+a[j]);
31                 m[j-1] = ans;
32                 ans = Max(ans,d[j]);
33             }
34         }
35         printf("%d\n",ans);
36     }
37     return 0;
38 }

 

以上是关于杭电1024----Max Sum Plus Plus的主要内容,如果未能解决你的问题,请参考以下文章

hdu-1024 Max Sum Plus Plus

hdu1024 Max Sum Plus Plus (Dp)

hdu1024 Max Sum Plus Plus

hdu-1024 Max Sum Plus Plus

[2016-03-28][HDU][1024][Max Sum Plus Plus]

HDU 1024:Max Sum Plus Plus(DP)