HDOJ 1087 Super Jumping! Jumping! Jumping!
#include<iostream>#include<cmath>using namespace std;int a[1005], dp[1005];int main(){ int n,sum,i,j; while( scanf("%d",&n)&&n){ for( i=0; i<n; i++){ scanf("%d",&a[i]); dp[i]=a[i]; } sum=0; for( i=1; i<n; i++){ for( j=0; j<i; j++){ if( a[i]>a[j]) dp[i]=max(dp[i],dp[j]+a[i]); } if( dp[i]>sum) sum=dp[i]; } printf("%d\n",sum); } return 0;}唯一需要注意的是:可以隔着跳