
DongDong每年过春节都要回到老家探亲,然而DongDong记性并不好,没法想起谁是谁的亲戚(定义:若A和B是亲戚,B和C是亲戚,那么A和C也是亲戚),她只好求助于会编程的你了。
题目
- 原题地址:DongDong认亲戚
- 题目编号:NC23803
- 题目类型:并查集
- 时间限制:C/C++ 1秒,其他语言2秒
- 空间限制:C/C++ 131072K,其他语言262144K
1.题目大意
- 多次操作:
1 a b代表a是b的亲戚
2 a b询问a和b是否是亲戚
2.题目分析
- 并查集模板题,应该有
merge函数,懒得写直接精简代码了
3.题目代码
#include <bits/stdc++.h>
using namespace std;
unordered_map<string,string> ma;
string find(string s) { return ma[s]==s?s:find(ma[s]); }
int main() {
int n, m;
cin >> n >> m;
string s, ss;
while(n--) cin >> s, ma[s] = s;
while(m--) {
cin >> n >> s >> ss;
if(n&1) ma[find(s)] = find(ss);
else cout << (find(s)==find(ss)) << endl;
}
}