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

POJ-2479(DP)

时间:2016-03-27 13:59:21      阅读:125      评论:0      收藏:0      [点我收藏+]

标签:

一个线性DP的经典入门题,不难,但是看到有的大神写出来的时间只有两位数的时间,最快的16MS,真是想破脑袋也做不到。

 1 /*Memory:704K Time:422MS */
 2 
 3 #include<cstdio>
 4 #include<algorithm>
 5 using namespace std;
 6 int a[50001],left[50001],right[50001];
 7 void maxsum()
 8 {
 9     int t,n,i,res;
10     scanf("%d",&t);
11         while(t--)
12         {
13             scanf("%d",&n);
14             for(i=0;i<n;i++)
15             {
16                 scanf("%d",&a[i]);
17             }
18             left[0]=a[0];
19             right[n-1]=a[n-1];
20             for(i=1;i<n;i++)
21             {
22                 if(left[i-1]<0)left[i]=a[i];
23                 else left[i]=left[i-1]+a[i];
24                 if(right[n-i]<0)right[n-i-1]=a[n-i-1];
25                 else right[n-i-1]=right[n-i]+a[n-i-1];
26             }
27             for(i=1;i<n;i++)
28             {
29                 left[i]=max(left[i],left[i-1]);
30                 right[n-i-1]=max(right[n-i],right[n-i-1]);
31             }
32             res=-1000000;
33             for(i=1;i<n;i++)
34             {
35                 res=max(res,left[i-1]+right[i]);
36             }
37             printf("%d\n",res);
38         }
39 }
40 int main()
41 {
42     maxsum();
43     return 0;
44 }

 

POJ-2479(DP)

标签:

原文地址:http://www.cnblogs.com/zuoyaoAC/p/5325380.html

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