HDU1087 Super Jumping! Jumping!
(TEST<32> 11.25)
解题思路
dp就是求前面的每一个位置的最大值然后依次往后更新
太菜了 ,看着以前的模板才 AC出来…
AC 代码如下
#include<iostream>
#include<algorithm>
#include<cstring>
using namespace std;
int dp[1005],a[1005];
int main() {
int n,i,j,maxx;
while(cin>>n&&n){
dp[0]=0;
maxx=1;
for(int m=1; m<=n; m++)
cin>>a[m];
for(i=1; i<=n; i++) {
//被更新位置
dp[i]=a[i];
for(j=1; j<i; j++) {
if(a[j]<a[i])
dp[i]=max(dp[i],dp[j]+a[i]);
}
maxx=max(maxx,dp[i]);
}
cout<<maxx<<endl;
}
return 0;
}