hdu Super Jumping! Jumping! Jumping!

来源:互联网 发布:macd算法 编辑:程序博客网 时间:2024/05/18 08:01

题意:

从一个点,一直跳,下一步只能够跳到比当前最大的,(就是与最长子序列差不多(可不连续的)。

 

限制与要求:

多组测试,以零结束。

 

分析:

状态转移方程。

dp[i]=max(dp[i],dp[j]+a[i]),0<j<i;

 

#include<stdio.h>#include<string.h>int max(int a,int b){    return a>b?a:b;}int dp[100010];int main(){    int n,i,j;    int ans,a[100010];    while(scanf("%d",&n)!=EOF,n)    {        memset(dp,0,sizeof(dp));        for(i=0;i<n;i++)        {            scanf("%d",&a[i]);            dp[i]=a[i];        }        for(i=0;i<n;i++)            for(j=0;j<=i;j++)                if(a[j]<a[i]) dp[i]=max(dp[i],dp[j]+a[i]);        ans=-1000;        for(i=0;i<n;i++)            if(dp[i]>ans) ans=dp[i];        printf("%d\n",ans);    }    return 0;}


 

原创粉丝点击