1 solutions
-
0
C++ :
#include <algorithm> #include <cstdio> using namespace std; const int N = 1e5 + 5; int n, m; int f[N]; int ans; int getf(int u) { return f[u] ? f[u] = getf(f[u]) : u; } int main() { scanf("%d%d", &n, &m); for (int i = 1; i <= m; i++) { int u, v; scanf("%d%d", &u, &v); if (getf(u) != getf(v)) f[getf(u)] = v; } for (int i = 1; i <= n; i++) ans += getf(i) == i; printf("%d\n", ans - 1); return 0; }
- 1
Information
- ID
- 139
- Time
- 1000ms
- Memory
- 128MiB
- Difficulty
- (None)
- Tags
- # Submissions
- 0
- Accepted
- 0
- Uploaded By