首页 > 代码库 > HDU 1087 Super Jumping! Jumping! Jumping! --- DP入门之最大递增子序列

HDU 1087 Super Jumping! Jumping! Jumping! --- DP入门之最大递增子序列

 DP基础题 DP[i]表示以a[i]结尾所能得到的最大值 但是a[n-1]不一定是整个序列能得到的最大值

#include <bits/stdc++.h>using namespace std;const int maxn=1e3+5;int dp[maxn],n,a[maxn];int main(){    while(scanf("%d",&n)&&n)    {        memset(dp,0,sizeof(dp));        for(int i=0;i<n;i++)        scanf("%d",&a[i]);        int sum,ans=0;        for(int i=0;i<n;i++)        {            sum=0;            for(int j=0;j<i;j++)            {                if(a[j]<a[i])                sum=max(sum,dp[j]);            }            dp[i]=sum+a[i];            ans=max(ans,dp[i]);        }        printf("%d\n",ans);    }    return 0;}

 

HDU 1087 Super Jumping! Jumping! Jumping! --- DP入门之最大递增子序列