求助 60分
查看原帖
求助 60分
525056
I_love_LPN_Forever楼主2022/1/25 10:24
#include <cstdio>
#include <algorithm>
#define sf scanf
#define pf printf
#define maxn 200005
using namespace std;
int n, m, u, v;
long long f[maxn], ans;
bool vis[maxn];
int find(int x) {
	if (f[x] == x) {
		return x;
	}
	return f[x] = find(f[x]);
}
int main() {
	sf("%d %d", &n, &m);
	for (int i = 1; i <= n; i++) f[i] = i;
	for (int i = 1; i <= n; i++) {
		sf("%d %d", &u, &v);
		int uu = find(u);
    	int vv = find(v);
    	if(uu != vv) 
			f[uu] = vv;
	}
	for (int i = 1; i <= n; i++) {
		int x = find(i);
		if (vis[x] == false) {
			vis[x] = true;
			ans ++;
		}
	}
	pf("%d", ans);
	return 0;
}
2022/1/25 10:24
加载中...