HDOJ1003
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HDOJ1003相关的知识,希望对你有一定的参考价值。
MAX —sum 好久前做过 但是再看到的时候觉得的有点陌生
设Si是一定以i结尾的最大连续子序列
S1=a[1];
Sn=Sn-1>=0?Sn-1+a[n]:a[n];//状态转移大致是这样 则S1 —Sn中必有所求子序列 边存边比较 答案就出来了
#include<stdio.h> int main() { int a,P,n,start,temp,max,end,sum,mark=0; scanf("%d",&P); while(P--) { max=-1000,temp=1,sum =0; scanf("%d",&n); for(int i=1;i<=n;i++) { scanf("%d",&a); sum+=a; if(sum>max) { max=sum; start=temp; end=i; } if(sum<0) { sum=0; temp=i+1; } } printf("Case %d:\n%d %d %d\n",++mark,max,start,end); if(P!=0){ printf("\n"); } } return 0; }
以上是关于HDOJ1003的主要内容,如果未能解决你的问题,请参考以下文章