求调
查看原帖
求调
588533
_HEYTEA_楼主2024/8/13 15:58

#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N=50100;
int n,a[N],b[N],len,kk;
signed main(){
    cin>>n;
    for(int i=1;i<=n;i++){
        cin>>a[i];
    }
    b[1]=a[1];
    len=1;
    for(int i=2;i<=n;i++){
        if(a[i]>b[len]){
        	b[++len]=a[i];
		}
        else{
            int l=1,r=len,mid;
            while(l<r){
            	mid=(l+r)>>1;
            	if(b[mid]>a[i]){
            		r=mid;
				}
				else{
					l=mid+1;
				}
			}
            if(b[l]>a[i]){
            	b[l]=a[i];
			}
        }
    }
    cout<<len;
    return 0;
}
2024/8/13 15:58
加载中...