0
点赞
收藏
分享

微信扫一扫

【SSL】266⑥ 勇闯黄金十二宫射手宫

软件共享软件 2022-01-20 阅读 16
c++

勇闯黄金十二宫射手宫

Link


在这里插入图片描述

解题思路

将后一个序列映射出来,贪心+二分选择。

code

#include<algorithm>
#include<iostream>
#include<cstdio>
using namespace std;

int n,ans;
int a[100010];
int b[100010];
int c[100010];

int main()
{
	cin>>n;
	for(int i=1;i<=n;i++)
		scanf("%d",&a[i]);
	for(int i=1;i<=n;i++)
	{
		int t;
		scanf("%d",&t);
		b[t]=i;
	}
	for(int i=1;i<=n;i++)
		if(b[a[i]]>c[ans])
			c[++ans]=b[a[i]];
		else
		{
			int t=lower_bound(c+1,c+ans+1,b[a[i]])-c;
			c[t]=min(c[t],b[a[i]]);
		}
	cout<<ans<<endl;
}
举报

相关推荐

0 条评论