hdu 1087 Super Jumping! Jumping! Jumping! DP

来源:互联网 发布:大数据下的机械工程 编辑:程序博客网 时间:2024/03/28 18:33

简单的递增数列最大和

dp[i]保存以i为结尾的递增数列最大和

于是有dp[i] = max(dp[i], dp[j]+a[i]);


#include <iostream>using namespace std;#define N 1005int a[N],dp[N];int main(){int n;while(cin >> n){if(n==0)break;for(int i=0; i<n; i++){cin >> a[i];dp[i] = a[i];}int max = a[0];for(int i=1; i<n; i++){for(int j=0; j<i; j++){if(a[i]>a[j] && a[i]+dp[j]>dp[i])dp[i] = a[i] + dp[j];}if(max < dp[i])max = dp[i];}cout << max << endl;}return 0;}