码迷,mamicode.com
首页 > 其他好文 > 详细

杭电1024----Max Sum Plus Plus

时间:2017-05-06 20:53:00      阅读:141      评论:0      收藏:0      [点我收藏+]

标签:line   自己   ++   oid   ora   text   log   inf   init   

 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

标签:line   自己   ++   oid   ora   text   log   inf   init   

原文地址:http://www.cnblogs.com/qq188380780/p/6817852.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!