并查集
#include<iostream>

using namespace std;

const int N=1e5+4;

int p[N];
核心代码:寻找祖宗节点+路径压缩
-----------------------------------
int find(int x)                   |   
{                                 |
    if(p[x]!=x) p[x]=find(p[x]);  |
    return p[x];                  |
}                                 | 
-----------------------------------
int main()
{
    int n,m;
    cin>>n>>m;
    for(int i=1;i<=n;i++) p[i]=i;
    
    while(m--)
    {
        char op;
        int a,b;
        cin>>op>>a>>b;
        if(op=='M') p[find(a)]=find(b);
        else
        {
            if(find(a)==find(b)) cout<<"Yes"<<endl;
            else cout<<"No"<<endl;
        }
    }
    return 0;
}
posted on 2023-01-04 08:28  Huayushanchuan  阅读(12)  评论(0编辑  收藏  举报