ABC284のC問題 Count Connected Components の解説です。
コード
#include<bits/stdc++.h>
using namespace std;
vector> G;
vector visited;
// 探索する関数
void rec (int v) {
visited[v] = true;
for (auto v2 : G[v]) {
if (visited[v2]) continue;
rec(v2);
}
}
int main() {
int n, m;
cin >> n >> m;
G.resize(n);
visited.resize(n);
for (int i = 0; i < n; i++) visited[i] = false;
for (int i = 0; i < m; i++) {
int a, b;
cin >> a >> b;
a--;
b--;
G[a].push_back(b);
G[b].push_back(a);
}
int ans = 0;
for (int v = 0; v < n; v++) {
if (!visited[v]) {
rec(v);
ans++;
}
}
cout << ans << endl;
return 0;
}
解説動画リンク
解説動画はこちらです。
コメント