AC代码:
#include<bits/stdc++.h>
using namespace std;
const int N=1e5+10;
int n,m;
int father[N];//father[x]表示x的父节点
//查询x所属集合
int find(int x){
if(father[x]!=x) father[x]=find(father[x]);
return father[x];
}
int main(){
cin>>n>>m;
//初始化,每个结点为独立的一个集合
for(int i=1;i<=n;i++) father[i]=i;
//执行操作
char op;
int a,b;
while(m--){
cin>>op>>a>>b;
if(op=='M') father[find(a)]=find(b);
else{
if(find(a)==find(b)) cout<<"Yes"<<endl;
else cout<<"No"<<endl;
}
}
return 0;
}