AcWing 895. 最长上升子序列
原题链接
简单
作者:
牛奶小柒Luke
,
2021-03-10 22:01:09
,
所有人可见
,
阅读 200
状态表示:所有以a[i]结尾的严格单调上升的子序列
状态计算:第k类中的上升子序列(ak < ai) fk + 1
#include <iostream>
#include <cstring>
#include <algorithm>
#include <cstdio>
using namespace std;
const int N = 1010;
int n;
int f[N],a[N];
int res;
int main(){
scanf("%d",&n);
for(int i = 1;i <= n;++i) scanf("%d",&a[i]);
for(int i = 1;i <= n;++i){
f[i] = 1;
for(int j = 1;j < i;++j){
if(a[j] < a[i]) f[i] = max(f[j] + 1,f[i]);
}
res = max(res,f[i]);
}
printf("%d\n",res);
return 0;
}