90pts 求助!!!
查看原帖
90pts 求助!!!
726902
bcbgszyzh楼主2024/4/8 16:27
#include<bits/stdc++.h>
using namespace std;
const int MAXN=1E6+5;
int n,a[MAXN],flag[MAXN],f[MAXN],l; 
int main(){
	scanf("%d",&n);
	for(int i=1,x;i<=n;++i){
		scanf("%d",&x);
		flag[x]=i;
	}
	for(int i=1,x;i<=n;++i){
		scanf("%d",&x);
		a[i]=flag[x];
	}
	for(int i=2;i<=n;++i){
		if(a[i]>f[l]){
			f[++l]=a[i];
		}else{
			int p=upper_bound(f+1,f+l+1,a[i])-f;
			f[p]=a[i];
		}
	}
	printf("%d",l);
	return 0;
}
2024/4/8 16:27
加载中...