HDU 1087 Super Jumping! Jumping! Jumping! (基础dp)

来源:互联网 发布:最牛的请假条淘宝 编辑:程序博客网 时间:2024/06/01 09:34
/*基础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;}

0 0
原创粉丝点击