您的位置:首页 > 其它

POJ 2533

2012-12-13 12:14 399 查看
//11103780	c00h00g	2533	Accepted	408K	16MS	G++	641B	2012-12-13 12:18:44
//最长上升子序列,写这种题目竟然也需要修改好多次,基础还是不牢固啊 
#include<stdio.h>
#include<stdlib.h>

int a[1005];
int dp[1005];

int N;
int main(){
    while(scanf("%d",&N)!=EOF){
        for(int i=0;i<N;i++){
            scanf("%d",&a[i]);
            dp[i]=1;
        }
        int res=1;
        for(int i=1;i<N;i++){
            int max=-1;
            for(int j=0;j<i;j++){
                if(a[i]>a[j]&&dp[j]>max){
                    max=dp[j];
                }    
            }
            if(max!=-1)
                dp[i]=max+1;
            if(res<dp[i])
                res=dp[i];
        }                
        printf("%d\n",res);
    }    
    return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: