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 |