아마 1학기 기말고사 기간에 풀었던 걸로 기억하는 문제. 푼 지는 꽤 됐는데 언젠가 글을 써야지 써야지 하다가 이제서야 쓴다.
covered region을 최대화하려면 각 원이 모두 한 점에만 만나야 한다. 그러니까 모든 원(과 원 안의 부분)을 이루는 점의 집합의 교집합의 원소가 정확히 한 개여야 한다는 것이다. 그렇지 않은 경우엔 원 하나를 적절히 움직여서 더 넓은 covered region을 갖는 형태로 만들 수 있다. 그러면 원점을 지나는 원들의 형태를 다루는 문제가 된다. 정확히는 형태라기보다는 원의 중심이 존재하는 위치? 각도? 그런 것이다.
이제 문제 상황을 좀 편하게 다루기 위해 도형을 극좌표계로 펼쳐 보자. 극좌표계에서 원점을 지나고 반지름이 $R$인 원은 $r = 2R\cos(\theta - a)$ 꼴로 표현된다. 여기서 $a$는 원이 원점 기준 반시계 방향으로 회전한 각도이다. 그러면 우리가 다루는 모든 원이 $\theta - r$ 평면에 그려진, 코사인 그래프의 $-\pi /2 ~ \pi /2$ 부분이 된다. 이 코사인 부분들을 가로로 막 움직이면서 전체 넓이를 최대화하면 된다.
여기서부터 증명은 못 하고 그냥 직관의 영역. 언젠가는 증명할 수 있을지도? 아직은 못함.
원이 많이 주어진 상황에서 무조건 원들은 일부 겹칠 수밖에 없다. 그렇기에 겹치는 넓이를 최소화하는 것이 전체 넓이를 가장 크게 만드는 방법인데...
코사인 부분 세 개가 나란히 있다고 하자. 양 끝의 코사인 부분은 고정되어 있을 때 가운데 코사인 부분을 어떻게 두어야 셋의 부분 넓이를 가장 크게 만들 수 있을까 생각하면, 왼쪽 부분 가운데 부분이 만나는 점의 $r$값과 가운데 부분 오른쪽 부분이 만나는 점의 $r$값이 같도록 하면 된다는 것을 알 수 있다. 이유는 다음과 같은데,
1. 가운데 코사인 부분을 위에서 말한 대로 배치한 뒤의 양 교점 $r$값이 $R_0$이라고 하자.
2. 이제 가운데 코사인 부분을 $\text{d}\theta$만큼 아주아주아주 살짝 오른쪽으로 옮긴다.
3. 오른쪽 부분과 만나는 $r$값이 $R_r$, 왼쪽 부분 값이 $R_l$로 바뀌었다고 하자. 그러면 충분히 작은 $\text{d}\theta$값에 대해 오른쪽 부분과 더 겹치게 된 넓이는 $\text{d}\theta \cdot (R_0+R_r)/2$, 왼쪽 부분과 안 겹치게 된 넓이는 $\text{d}\theta \cdot (R_0+R_l)/2$이다.
4. 그러면 전체 넓이는 안 겹치게 된 넓이 - 더 겹치게 된 넓이$ = \text{d}\theta \cdot \{(R_0+R_l)/2 - (R_0+R_r)/2\} = \text{d}\theta \cdot (R_l - R_r)/2$만큼 변화한다
5. 여기서 $R_l - R_r$의 부호를 생각해 보자. 오른쪽 부분과 가운데 부분이 만나는 점이 왼쪽 부분과의 그것보다 가운데 부분의 봉우리에 더 가까이 있게 되기 때문에 $R_r$이 $R_l$보다 더 크다. 따라서 전체 넓이는 줄어든다.
6. 가운데 코사인 부분을 왼쪽으로 옮긴다고 해도 똑같은 결과가 나온다. 즉 원래의 상태가 최적의 상태가 된다.
7. 이게 직교좌표계에서 구한 넓이긴 한데 극좌표계에서 생각해도 결과는 다르지 않다. 어차피 직관으로 하는 거니까...
그러니까 한 코사인 부분이 다른 코사인 부분들과 만나는 점의 높이가 같도록 해야 한다는 것인데, 이 코사인 부분들은 쭉 늘어져 있으니까 다음과 같이 된다.
1. a-b 교점의 높이와 b-c 교점의 높이를 같도록 해야 한다.
2. b-c 교점의 높이와 c-d 교점의 높이를 같도록 해야 한다. 그러면 a-b높이 = b-c높이 = c-d높이.
3. c-d와 d-e -> a-b = b-c = c-d = d-e
...
n. 모든 코사인 부분들이 만드는 교점은 같은 높이에 있어야 한다!
그리고 이렇게 생각하면 원들을 늘어놓는 순서도 의미가 없는 것이 어차피 일정 높이까지는 다 같이 겹치는 것이고 그 위의 부분들은 모두 겹치지 않기 때문에 똑 떼서 순서를 바꾼들 넓이에는 영향이 없다.
이제 높이 하나를 정하면 그걸로 코사인들 쭉 이어걸어서 넓이를 구할 수 있다. 정답 높이는 식 써서 찾아도 되고 그냥 이분 탐색 때려도 나온다.
https://www.acmicpc.net/problem/18968
18968번: Circle Union
An arrangement of several circles in the plane is interesting if there exists a point that lies inside or on the boundary of each circle. The covered region of an arrangement consists of all points that lie inside or on the boundary of at least one of th
www.acmicpc.net