2018. 4. 6. 02:17, 알고리즘/BOJ
https://www.acmicpc.net/problem/2022
건물 사이의 거리를 d라고 할 때
입니다. 이는 두 직선의 접점을 계산함으로서 구해낼 수 있습니다.
문제는, 직관적으로는 f(d)가 감소함수이지만 이를 증명하는 것이 쉽지 않았습니다. 울프람알파로 f'(d)를 계산해보기도 했는데 굉장히 더러웠습니다. 이 부분은 어쩔 수 없이 눈으로 보기에 그러니 아마 감소함수일 것이라고 생각하고 넘어갔습니다.
아무든 f(d)가 감소함수이기만 하다면 0~min(x,y)에서 binary search를 하면 됩니다. 실수의 오차로 인해 st, en 차이가 어느 정도 이하로 떨어지면 값을 출력해야 하는데, 너무 작은 값을 주면 시간초과가 나고 너무 큰 값을 주면 답이 틀릴 수 있습니다.
'알고리즘 > BOJ' 카테고리의 다른 글
[BOJ] 15632번: Drawing Character (0) | 2018.04.06 |
---|---|
[BOJ] 15630번: Binary Game (0) | 2018.04.06 |
[BOJ] 1561번: LUNA (0) | 2018.04.06 |
[BOJ] 8986번: 전봇대 (0) | 2018.04.05 |
[BOJ] 2230번: 수 고르기 (2) | 2018.04.05 |
[BOJ] 1517번: 버블 소트 (0) | 2018.04.05 |
Comments