看清题目哇!!可以任选就可以上升子序列了,还有就是dp还是不熟悉基本模板

自顶而下在意讲当前状态设为最后的状态,进行比较和取舍,空当接龙玩的好的估计dp都厉害

/* ***********************************************
Author :PeterBishop
Created Time :2019年03月15日 星期五 09时08分33秒
File Name :t.cpp
************************************************ */

#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <string>
#include <cmath>
#include <cstdlib>
#include <vector>
#include <queue>
#include <set>
#include <map>
#include <stack>
#include <string>

using namespace std;

int main()
{
freopen("in.txt","r",stdin);
int n;
while(cin>>n){
if(!n)
break;
int a[1010];
a[0]=0;
for(int i=1;i<=n;i++)
cin>>a[i];
int dp[1010];
int max=0;
memset(dp,0,sizeof(dp));
dp[1]=a[1];
for(int i=1;i<=n;i++){
for(int j=1;j<i;j++){
if(a[i]>a[j]&&dp[j]+a[i]>dp[i]){
dp[i]=dp[j]+a[i];
}
}

if(max<dp[i])
max=dp[i];

}
cout<<max<<endl;
}
return 0;
}