A. 【例题1】【模板】并查集
题目
思路
模板并查集
代码
#include<bits/stdc++.h>
using namespace std;
int fa[100001],n,m,x,y,z;
int find(int x)//查找
{
if(fa[x]!=x) return fa[x]=find(fa[x]);
return x;
}
void merge(int x,int y)//合并
{
int fx=find(x),fy=find(y);
fa[fx]=fy;
return;
}
int main()
{
scanf("%d%d",&n,&m);
for(int i=1;i<=n;++i) fa[i]=i;
for(int i=1;i<=m;++i)
{
scanf("%d%d%d",&z,&x,&y);
if(z==1) merge(x,y);
else if(find(x)==find(y)) cout<<"Y"<<endl;
else cout<<"N"<<endl;
}
}