呜呜呜162分求助
查看原帖
呜呜呜162分求助
563663
xu222ux楼主2023/9/15 16:26
#include<bits/stdc++.h>
using namespace std;
long long n;
long long a[50004];
long long f[50010];
long long ans=1;
int main(){
    while(cin>>a[n+1])n++;
    f[1]=a[1];
	for(int i=2;i<=n;i++){
		long long l=1,r=ans;
		while(l<=r){
			long long mid=(l+r)>>1;
			if(a[i]>f[mid])r=mid-1;
			else l=mid+1;
		}
		f[l]=a[i];
		if(l>ans)ans++;
	}
	cout<<ans<<endl;
	memset(f,0,sizeof(f));
	ans=1;
	f[1]=a[1];
	for(int i=2;i<=n;i++){
		long long l=1,r=ans;
		while(l<=r){
			long long mid=(l+r)>>1;
			if(a[i]<=f[mid])r=mid-1;
			else l=mid+1;
		}
		f[l]=a[i];
		if(l>ans)ans++;
	}
	cout<<ans;
    return 0;
}

呜呜呜162分求助

2023/9/15 16:26
加载中...