并查集模板40分求调
查看原帖
并查集模板40分求调
645451
封禁用户楼主2023/9/27 21:32
#include <iostream>
#include <map>
using namespace std;
map<string,string> fa;

string find(string a)
{
    if (fa[a]==a)
    {
        return a;
    }
    else
    {
        return fa[a]=find(fa[a]);
    }
}

void marge(string a,string b)
{
    fa[a]=find(fa[b]);
}




int main()
{
    int n,m;
    cin  >> n >> m;
    for (int i=0;i<n;i++)
    {
        string s;
        cin >> s;
        fa[s]=s;
        
    }
    for (int i=0;i<m;i++)
    {
        string a,b;
        cin >> a >> b;
        marge(a,b);
    }
    int c;
    cin >> c;
    for (int i=0;i<c;i++)
    {
        string a,b;
        cin >> a >> b;
        if (find(a) == find(b))
        {
            cout << "Yes." << endl;
        }
        else
        {
            cout << "No." << endl;
        }
    }
}
2023/9/27 21:32
加载中...