1 solutions
-
0
#include<bits/stdc++.h> using namespace std; map<string,string>p;//由map建立父子关系链 string Get(string x){return p[x]==x?x:p[x]=Get(p[x]);}//求根函数,与int形式的get差不多 int main(){ char start;string name,name2;//需要的变量 cin>>start;//这里用的是cin,因为使用scanf的时候出现了一些bug,printf/cout亦然(不知道为什么,有没有大佬可以在评论区解答) while(start!='$'){//while循环(条件,start(即首字符)不为$) cin>>name;//名字 if(start=='#'){if(p[name]=="")p[name]=name;name2=name;}//当一个人是父亲的时候,如果他没有父亲,他就是他们家族的祖先,name2交给后面的儿子用 else if(start=='+') p[name]=name2;//如果是儿子,那么key就是父亲(name2存储父名) else cout<<name<<' '<<Get(name)<<endl;//如果输入?,那么直接按格式输出 cin>>start;//别忘了重启下一轮循环! } return 0;//自信递交! }
- 1
Information
- ID
- 1882
- Time
- 1000ms
- Memory
- 125MiB
- Difficulty
- 3
- Tags
- # Submissions
- 1
- Accepted
- 1
- Uploaded By