Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
140517 | 梁颢城 | 最长不下降子序列 | C++ | 解答错误 | 10 | 17 MS | 684 KB | 473 | 2024-03-30 15:44:47 |
#include<bits/stdc++.h> using namespace std; int a[100010],f[100010],n,top; signed main(){ cin >> n; for(int i = 1;i <= n;i++){ cin >> a[i]; if(f[top] <= a[i])f[++top] = a[i]; else{ int l = 0,r= top; while(l <= r){ int mid = (l+r)>>1; if(mid <=a[i]){ l = mid +1; if(f[l] > a[i]) break; }else{ r = mid-1; } } f[l] = a[i]; } } cout << top << endl; return 0; }