我的代码
#include <bits/stdc++.h>
using namespace std;
int father[100020], fa[100020];
int find(int x) {
return father[x] == x ? x : father[x] = find(father[x]);
}
void family(int x, int y) {
x = find(x);
y = find(y);
if (x != y) {
father[y] = x;
fa[x] += fa[y];
}
}
int main() {
int n, m;
scanf("%d%d", &n, &m);
for (int i = 1; i <= n; i++) {
father[i] = i;
fa[i] = 1;
}
for (int i = 1; i <= m; i++) {
char c;
cin >> c;
if (c == 'M') {
int a, b;
scanf("%d%d", &a, &b);
family(a, b);
}
if (c == 'Q') {
int a;
scanf("%d", &a);
printf("%d\n", fa[find(a)]);
}
}
}
TLE了3个点,要怎么改啊QAQ