0
1
mirror of https://git.sb/baoshuo/OI-codes.git synced 2024-11-24 14:08:47 +00:00
OI-codes/Luogu/problem/P1536/P1536.cpp

34 lines
602 B
C++
Raw Normal View History

2020-12-03 09:38:27 +00:00
#include <bits/stdc++.h>
using namespace std;
int n, m, x, y, ans, f[100005];
int find(int x) {
if (f[x] == x) return x;
return f[x] = find(f[x]);
}
void unity(int x, int y) {
f[find(x)] = find(y);
}
int main() {
while (cin >> n, n) {
ans = 0;
cin >> m;
for (int i = 1; i <= n; i++) {
f[i] = i;
}
for (int i = 1; i <= m; i++) {
cin >> x >> y;
unity(x, y);
}
for (int i = 1; i <= n; i++) {
if (find(i) == i) ans++;
}
cout << --ans << endl;
}
return 0;
}