codevs 1576 最长严格上升子序列

来源:互联网 发布:电极式暖手宝 知乎 编辑:程序博客网 时间:2024/05/16 16:57

题目描述 Description
给一个数组a1, a2 … an,找到最长的上升降子序列ab1

#include<bits/stdc++.h>int a[100005][3],cnt,mx,n;bool b[100005];int main(){    scanf("%d",&n);    for(int i=1;i<=n;i++){        scanf("%d",&a[i][1]);        a[i][2]=1;    }    for(int i=n;i>=1;i--){        int l=0,k=0;        for(int j=i+1;j<=n;j++){            if(a[i][1]<a[j][1] && a[j][2]>l){                l=a[j][2];                k=j;            }        }        if(l>0){            a[i][2]=l+1;            a[i][3]=k;        }    }    for(int i=1;i<=n;i++){        if(a[i][2]>mx)            mx=a[i][2];    }    printf("%d\n",mx);}