poj 2533 Longest Ordered Subsequence

#include<stdio.h>
#include<string.h>
#include<math.h>
#include<stdlib.h>
#include<algorithm>
using namespace std;
int a[5002];
int d[5002];
int n;
int main()
{
    while(scanf("%d",&n)!=EOF)
    {
            int i;
        for(i=0;i<n;i++)
        {
            scanf("%d",&a[i]);
        }
        int k=n;
        //a[0],a[1],,,,a[k-1]
    
        for(i=0;i<k;i++)
        {
            d[i]=1;
        }
        int MAX=d[0];
        int j;
        for(i=1;i<k;i++)
        {
            for(j=0;j<i;j++)
            {
                if(a[i]>a[j]&&d[i]<d[j]+1)
                {
                    d[i]=d[j]+1;
                }
            }
            MAX=MAX>d[i]?MAX:d[i];
        }
        printf("%d\n",MAX); 
    }
    return 0;
}

把之前的代码改了几行就过了

posted @ 2012-08-07 09:50  willzhang  阅读(135)  评论(0编辑  收藏  举报