0
1
mirror of https://git.sb/baoshuo/OI-codes.git synced 2024-12-28 01:31:59 +00:00
OI-codes/Luogu/problem/P1536/P1536.cpp
2021-01-02 15:30:52 +08:00

34 lines
602 B
C++

#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;
}