Algorithm
[BOJ_11724] 연결 요소의 개수
승우승
2019. 1. 7. 13:37
반응형
문제출처
https://www.acmicpc.net/problem/11724
dfs / bfs 두가지 모두 풀이가 가능하다. 하지만 분류가 bfs로 되어있어 bfs로 풀이하였다. bfs 개념을 익히는데 도움이 되는 문제
소스코드
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 | #include <iostream> #include <vector> #include <queue> using namespace std; int v, e; //vertex, edge int result; bool visit[1001]; bool g[1001][1001]; void bfs(int s) { queue<int> q; q.push(s); visit[s] = 1; while (!q.empty()) { s = q.front(); q.pop(); for (int i = 1; i <= sizeof(g[s]); i++) { if (g[s][i] && !visit[i]) { q.push(i); visit[i] = 1; } } } } int main() { ios_base::sync_with_stdio(false); cin.tie(0); cin >> v >> e; int start, end; // init graph... for (int i = 1; i <= e; i++) { cin >> start >> end; g[start][end] = 1; g[end][start] = 1; } for (int i = 1; i <= v; i++) { if (!visit[i]) { bfs(i); result++; } } cout << result; return 0; } | cs |
반응형