20pts求调 马蜂十分标准
  • 板块P2078 朋友
  • 楼主Na1L0n9
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/11/23 20:59
  • 上次更新2024/11/23 21:03:27
查看原帖
20pts求调 马蜂十分标准
1045932
Na1L0n9楼主2024/11/23 20:59
#include <bits/stdc++.h>
using namespace std;
const int N = 1e4 + 10;
int n, m, p, q, fa[N], ans1, ans2;
int find (int x) {
	if (fa[x] == x) {
		return x;
	}
	return fa[x] = find(fa[x]);
}
int main () {
	cin >> n >> m >> p >> q;
	for (int i = 1; i <= n; i++) {
		fa[i] = i;
	}
	while (p--) {
		int x, y;
		cin >> x >> y;
		fa[find(x)] = find(y);
	}
	for (int i = 1; i <= n; i++) {
		if (fa[i] == fa[1]) {
			ans1++;
		}
	}
	for (int i = 1; i <= m; i++) {
		fa[i] = i;
	}
	while (q--) {
		int x, y;
		cin >> x >> y;
		x = abs(x), y = abs(y);
		fa[find(x)] = find(y);
	}
	for (int i = 1; i <= m; i++) {
		if (fa[i] == fa[1]) {
			ans2++;
		}
	}
	cout << min(ans1, ans2);
	return 0;
} 
2024/11/23 20:59
加载中...