RE了,用并查集和 map数组做的,可能不是很好
  • 板块P2814 家谱
  • 楼主小超手123
  • 当前回复8
  • 已保存回复8
  • 发布时间2021/9/11 21:56
  • 上次更新2023/11/4 07:02:10
查看原帖
RE了,用并查集和 map数组做的,可能不是很好
490978
小超手123楼主2021/9/11 21:56
#include<bits/stdc++.h>
using namespace std;
map<string,string>f; //f[i]=j表示i的祖先是j
string find(string x){
	if(x==f[x])return x;
	return f[x]=find(f[x]);
}
void join(string er,string fa){
	string f1=find(f1),f2=find(f2);
	if(f1!=f2)f[f1]=f2;
}
int main() {
    while(true){
    	char c;
    	cin>>c;
    	if(c=='$')break;
    	if(c=='#'){
    		string er,fa;
    		cin>>er>>c>>fa;
    		join(er,fa);
		}
		else{
			string h;
			cin>>h;
			cout<<h<<" "<<find(h)<<endl;
		}
	}
	return 0;
}
2021/9/11 21:56
加载中...