poj 2533 Longest Ordered Subsequence 经典DP

题意:求最大上升子序列。

#include <iostream>
#include<cstdio>
#include<cmath>
#include<cstring>

using namespace std;

int d[1100],a[1100];

int main()
{
    int n;
    while(~scanf("%d",&n))
    {
        for(int i=0;i<n;i++)    scanf("%d",&a[i]),d[i]=1;
        int ans=0;
        for(int i=0;i<n;i++)
        {
            for(int j=0;j<i;j++)
                if(a[i]>a[j])
                    d[i]=max(d[i],d[j]+1);
            ans=max(ans,d[i]);
        }
        cout<<ans<<endl;
    }
}

你可能感兴趣的:(C++,dp,动态规划,poj,经典DP)