문제 링크
- https://icpc.me/26608
사용 알고리즘
- CHT
시간복잡도
- $O((N+M) \log X)$
풀이
모든 $x$에 대해 $\frac{B_i-kx}{A_i+kx}$의 최댓값을 구해야 합니다. $\frac{B_i-kx}{A_i+kx} = \frac{A_i+B_i}{A_i+kx}-1$이고, 이 식을 최대화하는 것은 $\frac{kx+A_i}{A_i+B_i}$를 최소화하는 것과 동치입니다.
일차 함수가 여러 개 있을 때, 특정 $x$좌표에서의 최솟값을 구하는 방법은 Convex Hull Trick이라는 이름으로 잘 알려져 있습니다. Li-Chao Tree를 사용하면 $O((N+M) \log X)$ 시간에 해결할 수 있습니다.
전체 코드
1 |
|