-
[BOJ]백준 1922번: 네트워크 연결/MSTProblem Solving/BOJ(백준) 2020. 11. 15. 00:28
컴퓨터를 연결하는 네트워크(가중치 무방향 그래프)가 주어졌을 때, 해당 네트워크의 MST를 구하는 문제이다
MST는 프림 알고리즘으로 구할 수 잇다
#include <cstdio> #include <algorithm> #include <vector> #include <queue> #define INF 987654321 using namespace std; priority_queue<pair<int, int>, vector<pair<int, int>>, greater<>> pq; vector<vector<pair<int, int>>> edge; int v, e, cost[10005], pre[10005], ans; bool visit[10005]; void prim(int u) { visit[u] = true; for (auto v : edge[u]) if (!visit[v.second])pq.push(v); while (!pq.empty()) { auto k = pq.top(); pq.pop(); if (!visit[k.second]) { ans += k.first; prim(k.second); return; } } } int main() { scanf("%d%d", &v, &e); edge.resize(v + 1); for (int i = 0, u, V, w; i < e; i++) { scanf("%d%d%d", &u, &V, &w); edge[u].push_back({ w,V }); edge[V].push_back({ w,u }); } prim(1); printf("%d", ans); return 0; }
'Problem Solving > BOJ(백준)' 카테고리의 다른 글
[BOJ]백준 1937번: 욕심쟁이 판다/DP (0) 2020.12.24 [BOJ]백준 11054번: 가장 긴 바이토닉 수열/DP (0) 2020.11.23 [BOJ]백준 1976번: 여행 가자/Union Find (0) 2020.11.04 [BOJ]백준 19235번: 모노미노도미노 풀이 및 코드 (0) 2020.11.02 [BOJ]백준 20056번: 마법사 상어와 파이어볼 (0) 2020.10.19