1 #include<cstdio>
2 #include<iostream>
3 #include<algorithm>
4 #include<queue>
5 #include<map>
6 #include<vector>
7 #include<set>
8 #include<string>
9 #include<cmath>
10 #include<cstring>
11 using namespace std;
12 int a[1010];
13 int n;
14 int dp[1010];//以i结尾的有多少个
15 void solve()
16 {
17 int res=0;
18 for(int i=0;i<n;i++)
19 {
20 dp[i]=1;
21 for(int j=0;j<i;j++)
22 {
23 if(a[j]<a[i])//如果满足,就比较当前和dpj+1哪个更大
24 dp[i]=max(dp[i],dp[j]+1);
25 }
26 res=max(res,dp[i]);
27 }
28 // for(int i=0;i<n;i++)
29 // printf("%d\n",dp[i]);
30 printf("%d\n",res);
31 }
32
33 int main()
34 {
35 scanf("%d",&n);
36 for(int i=0;i<n;i++)
37 scanf("%d",&a[i]);
38 solve();
39 return 0;
40 }
LIS 问题
猜你喜欢
转载自www.cnblogs.com/fudanxi/p/12296602.html
今日推荐
周排行