728x90
문제 링크: https://www.acmicpc.net/problem/14950
문제 풀이
1번 도시를 반드시 포함하고 모든 도시를 포함하면서 최소 비용을 구해야 한다. 그래서 1번 도시에서 먼저 시작하면서 풀어야 할것 같지만 최소 신장 트리를 생각해보면 어짜피 최소 간선으로 모든 노드를 포함하므로 어디서 시작하던 1번 도시는 반드시 포함한다. 따라서 비용으로 정렬하여 구하면 된다. 또한 한번 union을 하게 되면 모든 간선이 t만큼 증가하게 되는데 MST는 노드가 n개 일때 n-1개의 간선을 가지므로 t*1+t*2+...+t*(n-2)만큼 증가하게 된다. 따라서 최소 신장 트리를 이용하여 최소 비용을 구하고 거기에 t*1+t*2+...+t*(n-2)을 더해주면 된다.
코드
728x90
'BOJ' 카테고리의 다른 글
[BOJ][Python] 백준 24513번 - 좀비 바이러스 (0) | 2022.03.30 |
---|---|
[BOJ][C++] 백준 24860번 - Counting Antibodies (0) | 2022.03.29 |
[BOJ][Python] 백준 7511번 - 소셜 네트워킹 어플리케이션 (0) | 2022.02.11 |
[BOJ][Python] 백준 12871번 - 무한 문자열 (0) | 2022.01.21 |
[BOJ][Python] 백준 24309번 - РАВЕНСТВО (0) | 2022.01.21 |