#include <iostream>
using namespace std;
int n,m;
int S[100]={0};
int fg(int x){//找祖先
int d=x;
while (S[d]!=0){
d=S[d];
}
return d;
}
bool pd(int x,int y){
if (fg(x)==fg(y)){
return true;
}else{
return false;
}
}
void hb(int x,int y){
int xx=fg(x);
int yy=fg(y);
if (xx!=yy){
S[yy]=xx;
}
}
int main(){
cin>>n>>m;
int Z[m+5],X[m+5],Y[m+5];
char ans[m+5]={'/0'};
for (int i=0;i<m;i++){
cin>>Z[i]>>X[i]>>Y[i];
if (Z[i]==1){
hb(X[i],Y[i]);
}
if (Z[i]==2){
int f=pd(X[i],Y[i]);
if (f==true){
ans[i]='Y';
}else{
ans[i]='N';
}
}
}
for (int i=0;i<m;i++){
cout<<ans[i]<<endl;
}
return 0;
}
c++并查集知识点
最新推荐文章于 2024-07-10 15:03:25 发布