原題連結
題解
1.後面的列車排到前面最小的比自己大的列車後面
code
#include<bits/stdc++.h>
using namespace std;
int len=0;
int a[100005]={0};
int main()
{
int n;
cin>>n;
fill(a, a + 100005, INT_MAX);
for(int i=1;i<=n;i++)
{
int x;
cin>>x;
int pos=lower_bound(a+1,a+1+len+1,x)-a;
a[pos]=x;
len=max(pos,len);
}
cout<<len;
return 0;
}