题目链接:https://nanti.jisuanke.com/t/41384
这题暴力能过,我用的是并查集的思想,这个题的数据是为暴力设置的,所以暴力挺快的,但是当他转移的点多了之后,我觉得还是我这种方法更好一点。注意这里一定要用内部是hash的unordered_map 做,因为查询为o(1)
代码语言:javascript复制#include <iostream>
#include <algorithm>
#include <cstdio>
#include <cstring>
#include <unordered_map>
#include <cmath>
#include <map>
#define N 100010
using namespace std;
typedef long long ll;
unordered_map<int,int>fa;
int n,q;
int get(int x)
{
if(fa.count(x)==0) return x;
fa[x]=get(fa[x]);
}
int main()
{
scanf("%d%d",&n,&q);
// for(int i=1;i<=n 1;i )fa[i]=i;
int a,b;
while(q--)
{
scanf("%d%d",&a,&b);
if(a==1)
fa.insert(make_pair(b,b 1));
else
{
printf("%dn",get(b));
}
}
}