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\n",cnt); 18 return 0; 19 }