#include<stdio.h> #include<queue> #include<vector> #include<algorithm> using namespace std; const int MAX_N = 1e3; int n, m, res; vector<pair<int, int> > adj[MAX_N + 1]; bool ck[MAX_N + 1]; int main() { scanf("%d %d", &n, &m); for (int i = 0, a, b, c; i < m; i++) { scanf("%d %d %d", &a, &b, &c); adj[a].push_back({ b,c }); adj[b].push_back({ a,c }); } priority_queue<pair<int, int> > pq; pq.push({ 0,1 }); while (!pq.empty()) { int h = pq.top().second, dis = -pq.top().first; pq.pop(); if (ck[h]) continue; ck[h] = true; res += dis; for (auto it : adj[h]) pq.push({ -it.second,it.first }); } printf("%d", res); return 0; }
1922번: 네트워크 연결 - 코드 수정 필요
https://www.acmicpc.net/problem/1922
피드 구독하기:
댓글
(
Atom
)
댓글 없음 :
댓글 쓰기