문제 링크
- http://icpc.me/16127
사용 알고리즘
- DMST
시간복잡도
- $O(N^3)$
풀이
모든 미생물을 하나씩 만들면, 나머지를 만드는 최소 비용을 구하는 것은 쉽습니다. 모든 미생물을 하나씩 만드는 최소 비용을 구하는 방법을 알아봅시다.
$N+1$번 미생물을 추가해서, 처음에 $N+1$번 미생물 하나만 있다고 생각해봅시다. 그러면 입력으로 주어진 $y_i$를 $z_{N+1, i}$, $z_{i, N+1} = \infty$로 해석할 수 있습니다.
결국 이 문제는 루트가 정점이 $N+1$개 있는 완전 그래프에서, 루트가 $N+1$인 Directed MST를 구하는 문제가 됩니다.
Directed MST의 가중치는 $O(VE)$에 구할 수 있으므로 문제를 해결할 수 있습니다.
$O(VE \log E)$에 푸는 방법도 있다고 합니다.
전체 코드
DMST code : https://gina65.tistory.com/23
1 |
|