家谱

题目

https://www.luogu.org/problemnew/show/P2814

思路

直接用map做并查集即可

代码

#include
#include
#include
using namespace std;
map f;
string find(string x)
{
    return x==f[x]?x:f[x]=find(f[x]);
}
string s,s1;
int main()
{
    char ch;
    cin>>ch;
    while(ch!='$')
    {
        cin>>s;
        if(ch=='#')
        {
            s1=s;
            if(f[s]=="") f[s]=s;
        }
        else if(ch=='+') f[s]=s1;
        else cout<>ch;
    }
    return 0;
}

你可能感兴趣的:(题解)