我调过了但是并没有发现问题
查看原帖
我调过了但是并没有发现问题
756529
progress_from0楼主2023/3/16 20:39
#include<bits/stdc++.h>
#define ll long long

using namespace std;
const int maxn=50010;
int f[maxn],a[maxn],
cnt=1,len;

int main(){
	//freopen("1.txt","r",stdin);
	while(cin>>a[cnt])cnt++;
	cnt--;
	f[0]=0x3f3f3f3f;
	for(int i=1;i<=cnt;i++){
		if(f[len]>=a[i])f[++len]=a[i];
		else{
			int l=0,r=len,mid;
			while(l<r){
				mid=(l+r)>>1;
				if(f[mid]>=a[i])l=mid+1;
				else r=mid;
			}
			f[r]=a[i];
		}
		
	}
	cout<<len<<endl;
	len=0;f[0]=-1;
	for(int i=1;i<=cnt;i++){
		if(f[len]<=a[i])f[++len]=a[i];
		else{
			int l=0,r=len,mid;
			while(l<r){
				mid=(l+r)>>1;
				if(f[mid]>a[i])r=mid;
				else l=mid+1;
			}
			f[l]=a[i];
		}
		
	}
	cout<<len<<endl;
	return 0;
}
2023/3/16 20:39
加载中...