-
[Algorithm] 백준 5972 택배 배송 - C++, 다익스트라쾌락없는 책임 (공부)/알고리즘 문제풀이 2022. 3. 19. 11:31반응형
#include <iostream> #include <queue> #include <vector> #include <algorithm> #include <limits> using namespace std; int n, m; int cows[50001]; vector<pair<int, int>> edges[50001]; int main(){ // init ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); // input cin >> n >> m; for(int i = 0; i <= n ; i++) cows[i] = INT32_MAX; for(int i = 0; i < m; i++){ int a, b, c; cin >> a >> b >> c; edges[a].push_back({b, c}); edges[b].push_back({a, c}); } // Djikstra priority_queue<pair<int, int>> q; q.push({0, 1}); cows[1] = 0; while (!q.empty()){ int curCost = -q.top().first; int curPos = q.top().second; q.pop(); for(int i = 0; i < edges[curPos].size(); i++){ int nextCost = curCost + edges[curPos][i].second; int nextPos = edges[curPos][i].first; if(cows[nextPos] > nextCost){ cows[nextPos] = nextCost; q.push({-nextCost, nextPos}); } } } cout << cows[n] << '\n'; }
간단한 다익스트라로 풀리는 문제였습니다. 대신 길이 양방향이니 입력시 양쪽 방향으로 넣어줘야 합니다!
반응형'쾌락없는 책임 (공부) > 알고리즘 문제풀이' 카테고리의 다른 글
[Algorithm] 백준 13424 비밀 모임 - C++, 플로이드-와샬 (0) 2022.03.22 [Algorithm] 백준 18233 민준이와 마산 그리고 건우 - C++, 다익스트라 (0) 2022.03.21 [Algorithm] 프로그래머스 행렬 테두리 회전 - C++ (0) 2022.03.17 [Algorithm] 백준 2146 다리 만들기 - C++, BFS (0) 2022.03.13 [Algorithm] 백준 1976 여행가자 - C++, 분리집합 (0) 2022.03.09