题目链接: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;}
}