样例过了但是全wa,...
  • 板块P1536 村村通
  • 楼主www_win
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/7/24 21:02
  • 上次更新2024/7/24 22:25:01
查看原帖
样例过了但是全wa,...
813578
www_win楼主2024/7/24 21:02
#include <iostream>
using namespace std;
int n, m, g[1010];
int find(int x) {
	if(x != g[x]) g[x] = find(g[x]);
	return g[x];
}
void merge(int x, int y) {
	x = find(x);
	y = find(y);
	if(x != y) {
		g[x] = g[y];
	}
}
int check() {
	int ans = 0;
	for(int i = 1; i <= n; i++) {
		if(g[i] == i) ans++;
	}
	return ans - 1;
}
int main() {
	while(scanf("%d", &n) != EOF) {
		for(int i = 1; i <= n; i++) g[i] = i;
		cin >> m;
		for(int i = 0; i < m; i++) {
			int a, b;
			cin >> a >> b;
			merge(a, b);
		}
		cout << check() << endl;
	}
	return 0;
}
2024/7/24 21:02
加载中...