/*基础dpE - Super Jumping! Jumping! Jumping!时间: 2017/02/20题意:最大递增子序列题解:dp[i] 表示以i为终点的递增子序列最大值dp[i] = max(dp[i],dp[j]+a[i]) {j < i}*/#include<cstdio>#include<cstring>#include<cmath>#include<iostream>#include<algorithm>#include<queue>#include<map>using namespace std;#define N 1010#define INF 0x3f3f3f3fint dp[N],a[N];int main(){ int n; while(~scanf("%d",&n),n) { for(int i = 0; i < n; i++) scanf("%d",&a[i]); memset(dp,0,sizeof(dp)); int maxn = 0; for(int i = 0; i < n; i++) { dp[i] = a[i]; for(int j = i-1; j >= 0; j--) { if(a[i] > a[j]) dp[i] = max(dp[i],dp[j]+a[i]); } //PRintf("%d/n",dp[i]); maxn = max(maxn,dp[i]); } printf("%d/n",maxn); } return 0;}
新闻热点
疑难解答