站外题求助
  • 板块题目总版
  • 楼主somek_
  • 当前回复2
  • 已保存回复2
  • 发布时间2023/10/2 19:34
  • 上次更新2023/11/2 16:29:24
查看原帖
站外题求助
1037054
somek_楼主2023/10/2 19:34

题目

我的代码

#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

2023/10/2 19:34
加载中...