题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1087
题目:要你求怎么走获得更高的分数,必须逐步递增。最大递增子序列
详细看代码:
AC代码:
#include<iostream>
using namespace std;
const int maxn=1000;
int main(){
int n,i,j;
int a[maxn];
int dp[maxn];
int maxsum;
int maxend;
while(scanf("%d",&n)&&n){
for(i=0;i<n;i++){
cin>>a[i];
}
for(i=0;i<n;i++){
for(maxsum=0,j=0;j<i;j++){
if(a[j]<a[i]){
maxsum=max(maxsum,dp[j]);
}
}
dp[i]=a[i]+maxsum;
}
maxend=dp[0];
for(i=1;i<n;i++){
if(maxend<dp[i]){
maxend=dp[i];
}
}
cout<<maxend<<endl;
}
}