Codeforces Round #198 (Div. 2) —— D

昨天想了一下D题,有点思路不过感觉很麻烦,就懒得去敲了;

今天上午也想了一下,还是没有结果,看了一下官方题解,证明得很精彩;

这道题目其实就是一道裸地最大上升子序列的题;

看到这里,直接怒码····

 1 #include<cstdio>
 2 #include<algorithm>
 3 using namespace std;
 4 int a[100009];
 5 int main()
 6 {
 7     int n,k,x,cnt=0;
 8     scanf("%d",&n);
 9     for(int i=0;i<n;i++)
10     {
11         scanf("%d",&x);
12         int k=upper_bound(a,a+cnt,x)-a;
13         if(k==cnt)
14             cnt++;
15         a[k]=x;
16     }
17     printf("%d
",cnt);
18     return 0;
19 }
View Code
原文地址:https://www.cnblogs.com/yours1103/p/3293181.html