先上题目:
Time Limit: 2000/1000 MS
(Java/Others) Memory Limit: 65536/32768 K
(Java/Others)
Total Submission(s): 18956 Accepted
Submission(s): 8136
#include <cstdio> #include <cstring> #define MAX 1001 using namespace std; long long n,a[MAX],dp[MAX]; int main() { long long maxm; while(scanf("%I64d",&n),n){ for(int i=0;i<n;i++){ scanf("%I64d",&a[i]); } memset(dp,0,sizeof(dp)); maxm=0; for(int i=0;i<n;i++){ dp[i]=a[i]; for(int j=i-1;j>=0;j--){ if(a[j]<a[i] && dp[j]+a[i]>dp[i]){ dp[i]=dp[j]+a[i]; } } maxm = dp[i] > maxm ? dp[i] : maxm; } printf("%I64d\n",maxm); } return 0; }
HDU - 1087 - Super Jumping! Jumping! Jumping!
原文:http://www.cnblogs.com/sineatos/p/3522171.html