HDU 1087 Super Jumping! Jumping! Jumping!

来源:互联网 发布:数据库系统由什么构成 编辑:程序博客网 时间:2024/04/30 10:33

dp[i]表示以value[i]结尾的最大分数。则状态转移方程为dp[i]=max(dp[i],dp[j]+value[i]),
其中(value[j]< value[i],表示i可以从j跳过去)(0 <= j < i).

AC代码如下:

#include<iostream>#include<algorithm>#include<memory>using namespace std;int dp[1005], a[1005];int main() {    int n;    while (cin >> n, n) {        memset(dp, 0, sizeof(dp));        for (int i = 1; i <= n; ++i) {            cin >> a[i];        }        for (int i = 1; i <= n; ++i) {            for (int j = 0; j <i; ++j) {                if (a[j] < a[i]) {                    dp[i] = max(dp[i],dp[j] + a[i]);                }            }        }        int maxv = -100000000;        for (int i = 1; i <= n; ++i) {            maxv = max(maxv, dp[i]);        }        cout << maxv << endl;    }    return 0;}
0 0
原创粉丝点击