문제 링크
- http://icpc.me/2126
사용 알고리즘
- 파라메트릭 서치
- 최소 신장 트리
시간복잡도
- $O(M \log M \log X)$
풀이
효율은 $\frac{F - \sum C}{\sum F}$로 표현되고, 이 값을 최대화 하는 문제이므로 효율이 $K$ 이상이 될 수 있는지 확인하는 파라메트릭 서치를 시도할 수 있습니다.
$\frac{F - \sum C}{\sum F} \geq K$는 $F - \sum C \geq K \sum T$로 바꿀 수 있고, 다시 $F - \sum (C + KT) \geq 0$로 바꿀 수 있습니다.
$\sum (C + KT) \leq F$가 될 수 있는지 확인하는 문제이고, $F$는 상수이므로 $\sum (C+KT)$를 최소화하면 됩니다.
간선을 $C + KT$를 기준으로 정렬해서 MST를 만들어주면 됩니다.
전체 코드
1 |
|