-
[Algorithm] 백준 11562 백양로 브레이크 - C++, 플로이드 와샬쾌락없는 책임 (공부)/알고리즘 문제풀이 2022. 3. 23. 19:29반응형
#include <iostream> #include <algorithm> using namespace std; int n, m; int k; int route[251][251]; int main(){ // init ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); // input cin >> n >> m; for(int i = 1; i <= n; i++){ for(int j = 1; j <= n; j++){ route[i][j] = 999999999; } } for(int i = 0; i < m; i++){ int u, v, b; cin >> u >> v >> b; route[u][v] = 0; route[v][u] = 1; if(b == 1) route[v][u] = 0; } // floyid for(int via = 1; via <= n; via++){ for(int from = 1; from <= n; from++){ for(int to = 1; to <= n; to++){ if(from == to) route[from][to] = 0; route[from][to] = min(route[from][to], route[from][via] + route[via][to]); } } } cin >> k; for(int i = 0; i < k; i++){ int s, e; cin >> s >> e; cout << route[s][e] << '\n'; } }
생각해보면 쉬운 플로이드 와샬 방법인데 약간 감을 잡지 못해서 오래 걸린 문제입니다. 문제에서 못가는 경로는 없다 라고 했으므로 입력을 받을 때 양방향으로 바꿔야 하는 경우를 1 비용으로 처리한 뒤 플로이드 와샬을 진행하면 되는 문제였습니다.
반응형'쾌락없는 책임 (공부) > 알고리즘 문제풀이' 카테고리의 다른 글
[Algorithm] 백준 14588 Line Friends (Small) - C++, 플로이드 와샬 (0) 2022.03.29 [Algorithm] 백준 17182 우주 탐사선 - C++, 플로이드 와샬 (0) 2022.03.25 [Algorithm] 백준 13424 비밀 모임 - C++, 플로이드-와샬 (0) 2022.03.22 [Algorithm] 백준 18233 민준이와 마산 그리고 건우 - C++, 다익스트라 (0) 2022.03.21 [Algorithm] 백준 5972 택배 배송 - C++, 다익스트라 (0) 2022.03.19