#include<bits/stdc++.h>
using namespace std;
int fin[1233123];
int find(int k){
if(fin[k]==k) return k;
return fin[k]=find(fin[k]);
}
int n,m;
int main(){
cin>>n>>m;
for(int i=1;i<=n;i++) fin[i]=i;
for(int i=1;i<=m;i++){
int x,y,z;
cin>>z>>x>>y;
if(z==1){
fin[find(y)]=find(fin[x]);
}
if(z==2){
if(find(x)==find(y)){
cout<<"Y"<<"\n";
}
else{
cout<<"N"<<"\n";
}
}
}
return 0;
}
为什么z==1时候
不能是fin[fin[y]]=find(fin[x])
而是fin[find(y)]=find(fin[x])
求大佬指点没接触过并查集