/*基礎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;}
新聞熱點
疑難解答