您的位置:首页 > 其它

HDU 1087 Super Jumping! Jumping! Jumping! 最大递增子序列

2016-06-16 23:30 375 查看

Super Jumping! Jumping! Jumping!

Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 32564 Accepted Submission(s):
14692


[align=left]Problem Description[/align]
Nowadays, a kind of chess game called “Super Jumping!
Jumping! Jumping!” is very popular in HDU. Maybe you are a good boy, and know
little about this game, so I introduce it to you now.

#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;
}


我是代码,请点我!!!
不懂的时候,告诉自己,再坚持一下,再坚持一下,这个题就看懂了。

刚开始不会做,然后百度,看了好久才看明白这个题的方法~~~~(>_<)~~~~
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: