全 WA 求调
查看原帖
全 WA 求调
1221613
wangzc2012楼主2024/10/14 22:15
#include<bits/stdc++.h>
using namespace std;
int a[100005],f[100005]/*单调不升*/,h[10005],i=0,lh=0,lf=0;
int bin1(int x){
	int l=1,r=lf,mid;
	while (l<=r){
		mid=l+(r-l)/2;
		if (f[mid]>x) r=mid-1;
		else l=mid+1;
	}
	return l;
}
int bin2(int x){
    int l=1,r=lh,mid;
    while (l<r){
        mid=(l+r)/2;
        if (h[mid]<x) l=mid+1;
        else r=mid;
    }
    return r;
}
int main(){
	memset(f,1e9,sizeof(f));
    while (cin>>a[++i]){
        int t=bin1(a[i]);
        if (t==lf) f[++lf]=a[i];
		else f[t]=a[i];
		
        int a2=bin2(a[i]);
        if (h[a2]<a[i]) h[++lh]=a[i];
        else h[a2]=a[i];
    }
    cout<<lf<<'\n'<<lh;
    return 0;
}
2024/10/14 22:15
加载中...