您的位置:首页 > 其它

HDU 1087 Super Jumping! Jumping! Jumping!

2014-11-02 22:28 387 查看

http://acm.hdu.edu.cn/showproblem.php?pid=1087

最大递增子序列,不需要连续。能跳到i的条件是i>j && num[i] > num[j]。

#include <stdio.h>
#include <string.h>
#include <iostream>
#include <algorithm>

using namespace std;

const int N = 1010;

int dp
,num
;
int main(){
//    freopen("in.txt", "r", stdin);
    int n;
    while(scanf("%d",&n) != EOF && n){
        for(int i=1; i<=n; i++)
            scanf("%d",&num[i]);
        memset(dp, 0, sizeof(dp));
        for(int i=1; i<=n; i++)
            for(int j=0; j<i; j++)
                if(num[i] > num[j])
                    dp[i] = max(dp[i], dp[j] + num[i]);
        int ans = 0;
        for(int i=1; i<=n; i++)
            ans = max(ans, dp[i]);
        printf("%d\n",ans);
    }
    return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: