【ssl】【二分】勇闯黄金十二宫射手宫
【ssl 2666】【二分】题目解题思路首先要注意是可不连续的先用一个数组标记出哥哥的基因出现位置然后用弟弟的去匹配存储目前与哥哥能匹配上的位置如果当前数在哥哥基因中出现的位置比上一次匹配的要后,直接加入否则找到第一个比ta大的位置,更新因为能匹配上的基因数量不变,更新位置使队列更优代码#include<iostream>#include<cstdio>using name
·
【ssl】【二分】勇闯黄金十二宫射手宫
题目
解题思路
首先要注意是可不连续的
先用一个数组标记出哥哥的基因出现位置
然后用弟弟的去匹配
存储目前与哥哥能匹配上的位置
如果当前数在哥哥基因中出现的位置比上一次匹配的要后,直接加入
否则找到第一个比ta大的位置,更新因为能匹配上的基因数量不变,更新位置使队列更优
代码
#include<iostream>
#include<cstdio>
using namespace std;
int n,x,t,w[1000100],a[1000100],d[100010];
int main()
{
scanf("%d",&n);
for (int i=1;i<=n;i++)
{
scanf("%d",&x);
w[x]=i;
}
for (int i=1;i<=n;i++)
scanf("%d",&a[i]);
for (int i=1;i<=n;i++)
if (w[a[i]]>d[t])
d[++t]=w[a[i]];
else {
int z=lower_bound(d+1,d+t,w[a[i]])-d; //找到第一个大于等于w[a[i]]
d[z]=min(d[z],w[a[i]]);
}
printf("%d",t);
return 0;
}

GitCode 天启AI是一款由 GitCode 团队打造的智能助手,基于先进的LLM(大语言模型)与多智能体 Agent 技术构建,致力于为用户提供高效、智能、多模态的创作与开发支持。它不仅支持自然语言对话,还具备处理文件、生成 PPT、撰写分析报告、开发 Web 应用等多项能力,真正做到“一句话,让 Al帮你完成复杂任务”。
更多推荐
所有评论(0)