codevs 1576 最长严格上升子序列
题目描述 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);
}