题解 P3367 【【模板】并查集】
ShineEternal
2018-07-01 15:45:52
#include<cstdio>
using namespace std;
int father[200001];
int find(int a)
{
if(father[a]!=a)father[a]=find(father[a]);
return father[a];
}
int op(int x,int y)
{
father[x]=y;
return 0;
}
int main()
{
int n,m;
int x,y,pd;
int q;
scanf("%d%d",&n,&m);
for(int i=1;i<=n;i++)
{
father[i]=i;
}
for(int i=1;i<=m;i++)
{
scanf("%d%d%d",&pd,&x,&y);
if(pd==2)
{
if(find(x)==find(y))
{
printf("Y\n");
}
else
printf("N\n");
}
if(pd==1)
{
int r1=find(x);
int r2=find(y);
op(r1,r2);
}
}
return 0;
}