有了map,就很容易解决了。
题目
求两个人的关系
分析
并查集
代码
#include <iostream>
#include <map>
using namespace std;
map<string,string>uk; string s;
string getf(string u){return (uk[u]==u)?u:uk[u]=getf(uk[u]);}
int main(){
ios::sync_with_stdio(0);
char x; string g;
while (cin>>x,x!='$'){
cin>>s;
if (x=='#'){
g=s; if (uk[s]=="") uk[s]=s;
}
else if (x=='+') uk[s]=g;
else cout<<s<<" "<<getf(s)<<endl;
}
return 0;
}

本文介绍了一种使用并查集的数据结构来解决人际关系查询问题的方法。通过建立字符串到字符串的映射,可以有效地更新和查询两个个体之间的关系。代码采用C++实现,并展示了输入输出的具体操作。
476

被折叠的 条评论
为什么被折叠?



