标签:
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 32564 Accepted Submission(s):
14692
下标i | 0 | 1 | 2 | 3 | 4 | 5 |
a[i] | 3 | 2 | 4 | 2 | 3 | 6 |
sum[i] | 3 | 2 | 7 | 2 | 5 | 13 |
ans | 0 | 3 | 7 | 7 | 5 | 13 |
#include <iostream> #include <cstdio> //#define max(a,b) a>b ? a:b using namespace std; int main() { int n; int a[1000];//存储每一个数 int sum[1000];//存储这个数之前的递增子序列的和 int ans;//一直存储最大的和 while(scanf("%d",&n)!=EOF && n!=0){ for(int j1=0;j1<n;j1++){ scanf("%d",&a[j1]); } sum[0]=a[0]; ans=0; for(int i=1 ;i<n;i++){ ans=0; for(int j=0;j<i;j++){ if(a[i]>a[j]){ ans=max(sum[j],ans);//重要代码! } } sum[i]=a[i]+ans;//重要代码! } ans=-1; for(int i=0;i<n;i++){ if(ans<sum[i]){ ans=sum[i]; } } cout<<ans<<endl; } return 0; }
不懂的时候,告诉自己,再坚持一下,再坚持一下,这个题就看懂了。
刚开始不会做,然后百度,看了好久才看明白这个题的方法~~~~(>_<)~~~~
HDU 1087 Super Jumping! Jumping! Jumping! 最大递增子序列
标签:
原文地址:http://www.cnblogs.com/TWS-YIFEI/p/5592511.html