BOJ 10475 모기 넌 내꺼야

BOJ 10475 모기 넌 내꺼야

문제 링크:

문제 내용

mm개의 점이 주어집니다. 지름 dd인 원으로 한 번에 덮을 수 있는 점의 최대 개수를 구하세요. 원의 테두리에 걸친 점도 덮인 것으로 칩니다.

입력

첫 줄에는 테스트 케이스의 개수 nn이 주어집니다. (1n1001 \le n \le 100) 각 테스트 케이스의 앞에는 빈 줄이 있습니다.

각 테스트 케이스에 대해, 첫 줄에는 점의 개수 mm과 원의 지름 dd가 주어집니다. (1m321 \le m \le 32, 0<d2000 < d \le 200)

그 다음 mm줄에는 각 점의 xx좌표와 yy좌표가 주어집니다. (100x,y100-100 \le x, y \le 100) 원의 지름과 좌표는 정수가 아닐 수 있습니다.

원의 지름이 10510^{-5}만큼 커져도 답이 같음이 보장됩니다.

출력

각 테스트 케이스에 대해 문제의 답을 한 줄에 출력합니다.

문제 풀이

스포일러

다음과 같은 기하적 브루트포스를 생각할 수 있습니다.

  • 두 점을 선택하고, 원을 두 점에 접하도록 놓습니다. 이때 그 원의 내부에 있는 점의 개수를 셉니다.

이것이 성립하는 이유는, 임의의 원의 배치에 대해서 그 원을 한 점과 닿을 때까지 한쪽으로 움직일 수 있고, 그 점과 계속 닿은 상태에서 두 번째 점과 닿을 때까지 원을 돌릴 수 있기 때문입니다.

mm이 작으므로 이는 충분히 빠르게 동작합니다.

지름이 약간 커져도 답이 같음을 보장하지만 지름이 약간 작아져도 답이 같음을 보장하지는 않기 때문에, 원의 내부 판정을 할 때 약간의 epsilon을 두어 약간 밖에 있어도 넣어주는 것이 좋습니다.

Last updated on