acm hdu 1087 Super Jumping! Jumping! Jumping!
#include<iostream> #include<cstdio> using namespace std; #include<cstring> int main() { int N; int d[1000],num[1000]; while(cin>>N,N) { int i,j,sum=0; for(i=0;i<N;i++) cin>>num[i]; for(i=0;i<N;i++) { d[i]=num[i]; for(j=0;j<i;j++) { if(d[i]<d[j]+num[i]&&num[i]>num[j]) d[i]=d[j]+num[i]; } if(d[i]>sum) sum=d[i]; } cout<<sum<<endl; } return 0; }
这题是最基础的DP,要正确理解什么是状态转移。其他不说了,留给读者自己思考
posted on 2012-05-03 15:25 笨-Archangel 阅读(139) 评论(0) 收藏 举报
浙公网安备 33010602011771号