hdu 1003 Max Sum【DP】 0MS 248K
2012-01-25 13:15
447 查看
//dp[i] = max(dp[i-1]+a[i],dp[i]) = a[i]+dp[i-1]<0?0:dp[i-1]; //max=a[i]+max<0?0:max; #include<iostream> using namespace std; inline void read(int &d) { char ch; int flag=1; while(ch=getchar(),ch==' '||ch=='\n'); ch=='-'?flag=-1,d=0:d=ch-'0'; while(ch=getchar(),ch>='0'&&ch<='9') d=d*10+ch-'0'; d*=flag; } int main() { int a,t,n,cases=1; read(t); while(t--) { read(n); int sum=0,ans=-2000,tmp=1,head,rear; for(int i=1;i<=n;i++) { read(a); sum+=a; if(sum>ans) head=tmp,rear=i,ans=sum; if(sum<0) sum=0,tmp=i+1; } //cout<<"Case "<<cases++<<":"<<endl; //cout<<ans<<' '<<head<<' '<<rear<<endl; printf("Case %d:\n%d %d %d\n",cases++,ans,head,rear); if(t)putchar('\n'); //if(t)cout<<endl; } return 0; }
[/code]
相关文章推荐
- HDU 1003 Max Sum(最大区间和,DP)
- hdu 1003 Max Sum 最大字段和 dp
- HDU 1003 Max Sum——dp求最大连续和O(n)
- HDU 1003 MAX SUM 最大连续子段和DP
- Max Sum 最大连续和的子序列 HDU 1003 (一维序列DP)
- hdu 1003 Max Sum(简单dp)
- HDU——1003 Max Sum(dp 最大子段和 !!)
- Max Sum 最大连续和的子序列 HDU 1003 (一维序列DP)
- HDU 1003 Max Sum (DP)
- HDU1003 Max Sum(DP)
- HDU 1003 Max Sum 最大子段和dp解题
- HDU-1003-Max Sum(DP)
- HDU 1003:Max Sum(简单dp)
- HDU 1003 Max sum(dp)
- Max Sum (hdu 1003 简单DP水过)
- HDU 1003 Max Sum(dp,最大连续子序列和)
- hdu 1003 MAX SUM 简单的dp,测试样例之间输出空行
- hdu 1003 Max Sum 简单dp
- HDU 1003 Max Sum(dp)
- HDU 1003 Max Sum(DP)