AcWing 836. 合并集合
原题链接
简单
作者:
piaofan
,
2021-02-06 10:51:07
,
所有人可见
,
阅读 237
#include<iostream>
using namespace std;
const int N = 100005;
int p[N];
int find (int x) {
if (p[x] != x) return p[x] = find(p[x]);
return p[x];
}
int main (void) {
int m, n, a, b;
char op;
scanf("%d%d", &n, &m);
for (int i = 1; i <= n; i++) p[i] = i;
while (m--) {
scanf(" %c%d%d", &op, &a, &b);
if (op == 'M') {
if (find(a) == find(b)) continue;
p[find(a)] = find(b);
}
if (op == 'Q') {
if (find(a) == find(b)) printf("Yes\n");
else printf("No\n");
}
}
return 0;
}