求助!map+并查集 第一个点和最后两个点TLE
  • 板块P2814 家谱
  • 楼主atom_yan
  • 当前回复0
  • 已保存回复0
  • 发布时间2022/5/20 22:50
  • 上次更新2023/10/28 01:01:02
查看原帖
求助!map+并查集 第一个点和最后两个点TLE
668765
atom_yan楼主2022/5/20 22:50

代码如下

#include <bits/stdc++.h>
using namespace std;
map<string,string>_m;
string st,fat,son,aim;
string find(string p){
	if(p!=_m[p])_m[p]=find(_m[p]);
	return _m[p];
}
int main(){
	getline(cin,st);
	while(st!="$"){
		if(st[0]=='#'){
			fat=st.substr(1,6);
			if(_m[fat]=="")_m[fat]=fat;
		}
		else if(st[0]=='+'){
			son=st.substr(1,6);
			_m[son]=fat;
		}
		else if(st[0]=='?'){
			aim=st.substr(1,6);
			cout<<aim<<" "<<find(aim)<<endl;
		}
		getline(cin,st);
	}
	return 0;
}



2022/5/20 22:50
加载中...