HDU 1003 动态规划
Posted Donser
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HDU 1003 动态规划相关的知识,希望对你有一定的参考价值。
http://acm.hdu.edu.cn/showproblem.php?pid=1003
这几天开始刷动归题目,先来一道签到题
然而做的并不轻松,
没有注意到边界问题,
WA了几发才发现
#include<iostream> #include<cstdio> #include<cstring> using namespace std; int donser[100000]; int d[100000]; int main() { int i,j,k,test,n,max=0,num=1,shit; scanf("%d",&test);shit=test; while(test--) { memset(d,0,sizeof(d)); memset(donser,0,sizeof(d)); scanf("%d",&n); for(j=1;j<=n;j++) { scanf("%d",&d[j]); } donser[1]=d[1]; for(i=2;i<=n;i++) { if(donser[i-1]<0) donser[i]=d[i]; else donser[i]=donser[i-1]+d[i]; } max=donser[1]; for(i=2;i<=n;i++) { if(max<donser[i]) { max=donser[i];num=i; } } int nnn=0,hhh=1; for(k=num;k>0;k--) { nnn=nnn+d[k]; if(nnn==max){hhh=k;} } cout<<"Case "<<shit-test<<":"<<endl<<max<<" "<<hhh<<" "<<num<<endl; if(test) cout<<endl; max=0;num=1; } return 0; }
以上是关于HDU 1003 动态规划的主要内容,如果未能解决你的问题,请参考以下文章
HDU - 1003 Max Sum (思维 || 动态规划)