典型的LIS问题
1 #include<iostream>
2 #include<algorithm>
3 #include<cstdio>
4 using namespace std;
5 int a[1001];
6 int f[1001];
7 int main()
8 {
9 int n;
10 scanf("%d",&n);
11 for(int i=1;i<=n;i++)
12 {
13 scanf("%d",&a[i]);
14 }
15 for(int i=1;i<=n;i++)
16 {
17 f[i]=1;
18 }
19 for(int i=1;i<=n;i++)
20 {
21 for(int j=1;j<i;j++)
22 {
23 if(a[j]<a[i])
24 {
25 f[i]=max(f[i],f[j]+1);
26 }
27 }
28 }
29 int res=0;
30 for(int i=1;i<=n;i++)
31 {
32 res=max(res,f[i]);
33 }
34 printf("%d\n",res);
35 return 0;
36 }