https://www.acmicpc.net/problem/5972
5972번: 택배 배송
농부 현서는 농부 찬홍이에게 택배를 배달해줘야 합니다. 그리고 지금, 갈 준비를 하고 있습니다. 평화롭게 가려면 가는 길에 만나는 모든 소들에게 맛있는 여물을 줘야 합니다. 물론 현서는
www.acmicpc.net
[난이도] Gold5
[유형] 다익스트라
[풀이]
다익스트라
#include <cstdio> #include <queue> #include <algorithm> #include <vector> #include <functional> using namespace std; int N,M,dist[50001]; vector<pair<int,int>> adj[50001]; int main(){ scanf("%d%d",&N,&M); while(M--){ int u,v,d; scanf("%d%d%d",&u,&v,&d); adj[u].push_back({v,d}); adj[v].push_back({u,d}); } for(int i=1;i<=N;i++) dist[i]=9e8; priority_queue<pair<int,int>,vector<pair<int,int>>,greater<pair<int,int>>> pq; pq.push({0,1}); dist[1]=0; while(!pq.empty()){ auto [d,cur] = pq.top(); pq.pop(); if(dist[cur]!=d) continue; for(auto [nxt,nd] : adj[cur]){ if(dist[nxt] > d+nd){ dist[nxt]=d+nd; pq.push({dist[nxt],nxt}); } } } printf("%d",dist[N]); }
https://github.com/has2/Problem-Solving/blob/master/boj-solved.ac/Gold5/5972.cpp
'Problem-Solving > BOJ' 카테고리의 다른 글
[BOJ/백준][Gold5] 9207 : 페그 솔리테어 (C++) (0) | 2022.03.27 |
---|---|
[BOJ/백준][Gold5] 20500 : Ezreal 여눈부터 가네 ㅈㅈ (C++) (0) | 2022.03.27 |
[BOJ/백준][Gold5] 11509 : 풍선 맞추기 (C++) (0) | 2022.03.27 |
[BOJ/백준][Gold5] 17836 : 공주님을 구해라! (C++) (0) | 2022.03.27 |
[BOJ/백준][Gold2] 3687 : 성냥개비 (C++) (0) | 2022.03.27 |