HDU 1003Max Sum
来源:互联网 发布:java 线程池初始化 编辑:程序博客网 时间:2024/05/23 19:15
没什么好说的,经典的dp问题,需要考虑一种全为负数的特殊情况,我就被这个坑死了。。。。。。。。。。。
#include<iostream> #define N 100005 int ar[N]; int dp[N]; int start[N]; int t,n; int st,ed; int DP() { dp[0]=0; dp[1]=ar[1]; start[0]=0; start[1]=ar[1]; st=ed=1; int sttmp=1,edtmp=1; for(int i=2;i!=n+1;i++){ if(ar[i]>ar[i]+start[i-1]){ start[i]=ar[i]; sttmp=i; edtmp=i; }else{ start[i]=ar[i]+start[i-1]; edtmp=i; } if(start[i]>dp[i-1]){ dp[i]=start[i]; st=sttmp; ed=edtmp; }else{ dp[i]=dp[i-1]; } } return dp[n]; } int main() { while(std::cin>>t){ for(int i=0;i!=t;i++){ std::cin>>n; for(int i=0;i!=n;i++){ std::cin>>ar[i+1]; } int res=DP(); std::cout<<"Case "<<i+1<<":"<<std::endl; std::cout<<res<<" "<<st<<" "<<ed<<std::endl; if(i!=t-1){ std::cout<<std::endl; } memset(ar,0,sizeof(ar)); memset(dp,0,sizeof(dp)); memset(start,0,sizeof(start)); } } }
- HDU 1003 Max Sum
- hdu 1003 Max Sum
- hdu 1003 Max Sum
- HDU-1003 max sum
- HDU 1003 - Max Sum
- HDU 1003 Max Sum
- hdu 1003 Max Sum
- HDU 1003 Max Sum
- HDU 1003 Max Sum
- hdu 1003 max sum
- HDU 1003 Max Sum
- hdu 1003 Max Sum
- HDU 1003 Max Sum
- hdu 1003 Max Sum
- HDU 1003 Max Sum
- Hdu 1003 - Max Sum
- HDU-1003-Max Sum
- hdu - 1003 - Max Sum
- 将pclint集成到vc++6.0和SourceInsight的方法
- 素数的求法
- Code in the Language of the Domain
- 第三次C程序上机报告
- 第三次c语言上机操作
- HDU 1003Max Sum
- Ubuntu12 安装JDK1.7
- Code Is Design
- hdu 3308LCIS 线段树 区间合并
- zoj 2576 Queen Collisions
- 黑马程序员_java的面向对象(对第六课静态..类的加载过程和单例的总结)
- Code Layout Matters
- VC++ CDialog用法的一些总结(转载)
- 阴影贴图