#include<bits/stdc++.h>
#include<unordered_map>
#define endl '\n'
using namespace std;
vector<int>v;
//不需要二维存储,堆在前面的已经判定好是放哪条隧道的那些没用
int main() {
int n,a;
cin >> n;
for (int i = 0; i < n; ++i) {
cin >> a;
auto it=upper_bound(v.begin(), v.end(), a);//二分查找,有两种用法和函数
if (it != v.end())
*it = a;
else
v.push_back(a);
}
cout << v.size();
}
就是说。。特意来发一个CSDN 希望能帮到大家