poj 2533 Longest Ordered Subsequence(最长上升子序列)

http://poj.org/problem?id=2533

#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
int num[1000+100];
int dp[1000+100];
int main()
{
    int n;
    int i,j;
    while(scanf("%d",&n)!=EOF)
    {
        for(i=0;i<n;i++)
            {
                scanf("%d",&num[i]);
                dp[i]=1;
            }
        int maxx=1; //小细节 这里maxx需要初始化为 1 如果 为 0 当n=1时 输出为 0 
        for(i=n-2;i>=0;i--)
        {
            //int tmax=0;
            for(j=i+1;j<n;j++)
            {
                if(num[j]>num[i]&&dp[j]+1>dp[i]) dp[i]=dp[j]+1;
            }
            if(dp[i]>maxx) maxx=dp[i];
        }
        printf("%d
",maxx);
    }
    return 0;
}
原文地址:https://www.cnblogs.com/sola1994/p/4249186.html