hdu 1231 最大连续子序列(dp)

http://acm.hust.edu.cn/vjudge/problem/visitOriginUrl.action?id=17322

裸最大连续子序列 竟然差点拿来当区间dp来做= =

#include<cstdio>
 #include<algorithm>
 using namespace std;
 #define INF 1000000000
 int num[10000+100];
 int main()
 {
     int n,add;
     int i,j,k;
     int l,r,ans;
     while(scanf("%d",&n),n)
     {
         ans=-INF;l=1;r=1;
         int flag=0;
         for(i=1;i<=n;i++)
         {
             scanf("%d",&num[i]);
             if(num[i]>=0) flag++;
         }
         if(flag==0)
         {
             printf("0 %d %d
",num[1],num[n]);
             continue;
         }
         int sum=0;
         int tl=1,tr=1;
         for(i=1;i<=n;i++)
         {
             sum+=num[i];
             if(sum<0)
             {
                 sum=0;
                 while(num[i+1]<0) i++;
                 tl=i+1;
                 
             }
             else if(sum>ans)
             {
                 ans=sum;
                 r=i;
                 l=tl;
             }
         }
         printf("%d %d %d
",ans,num[l],num[r]);
     }
     return 0;
 }
View Code
原文地址:https://www.cnblogs.com/sola1994/p/4263052.html