-
백준 1916 최소비용 구하기 - C++, 다익스트라쾌락없는 책임 (공부)/알고리즘 문제풀이 2021. 6. 1. 21:34반응형
#include <iostream> #include <vector> #include <queue> #include <cstring> using namespace std; int n, m, start, finish; int inputTo, inputFrom, inputCost; vector<pair<int, int> > bus[1001]; int toIndexCityCost[1001]; void Djik(){ priority_queue<pair<int, int> > djikQ; djikQ.push(make_pair(0, start)); toIndexCityCost[start] = 0; while(!djikQ.empty()) { int cur = djikQ.top().second; int curCost = -djikQ.top().first; djikQ.pop(); for(int i = 0; i < bus[cur].size(); i++){ int nextCur = bus[cur][i].first; int nextCost = bus[cur][i].second; if(toIndexCityCost[nextCur] > nextCost + curCost){ toIndexCityCost[nextCur] = nextCost + curCost; djikQ.push(make_pair(-toIndexCityCost[nextCur], nextCur)); } } } } int main(){ scanf("%d %d", &n, &m); while(m--){ scanf("%d %d %d", &inputFrom, &inputTo, &inputCost); bus[inputFrom].push_back(make_pair(inputTo, inputCost)); } scanf("%d %d", &start, &finish); for(int i = 0; i <= n; i++) toIndexCityCost[i] = 999999999; Djik(); printf("%d\n", toIndexCityCost[finish]); }
이번에는 변수명에 조금 신경을 썼는데 오히려 더 알아보기 힘든 것 같네요. 더도말고 덜도 말고 평범한 다익스트라 알고리즘을 사용한 문제입니다.
반응형'쾌락없는 책임 (공부) > 알고리즘 문제풀이' 카테고리의 다른 글
백준 5719 거의 최단 경로 - C++, 다익스트라, BFS (0) 2021.06.05 백준 6165 Cow Contest - C++, 플로이드-와샬 (0) 2021.06.04 백준 11779 최소비용 구하기 2 - C++, 다익스트라 경로추적 (1) 2021.06.01 백준 15723 n단 논법 - C++ (0) 2021.05.30 백준 1613 역사 - C++ (0) 2021.05.28