【并查集】并查集模板:合并集合

【并查集】并查集模板:合并集合_第1张图片

【并查集】并查集模板:合并集合_第2张图片

#include
using namespace std;
const int N=100010;

int n,m;
int p[N];

int find(int x){
    if(p[x]!=x) p[x] = find(p[x]);
    return p[x];
}

int main(){
    cin>>n>>m;
    
    for(int i=1;i<=n;i++) p[i]=i;
    
    while(m--){
        char c;
        int a,b;
        cin>>c;
        cin>>a>>b;
        if(c=='M') p[find(a)]=find(b);
        else{
            if(find(a)==find(b))cout<<"Yes"<

你可能感兴趣的:(#,并查集,蓝桥杯,c++,拓扑学)