DOJ logoDOJ
문제
최근 추가된 문제들저장한 문제
카테고리DLC대회그룹팀게시판
랭킹
문제 풀이 랭킹스트릭 랭킹DOJ Power 랭킹
현황
문제 제안로그인회원가입
DOJ logoDOJ

OI 서브태스크 채점, Elo 레이팅, Discord 인증을 갖춘 커뮤니티 온라인 저지.

문제
문제 목록카테고리
커뮤니티
대회랭킹게시판공지사항외부 대회 개최이용 안내
계정
로그인회원가입채점 현황
정책
이용약관DLC 이용 규칙개인정보 처리방침API 사용 설명서언어별 채점 환경대회 순위 보상레이팅과 퍼포먼스
© 2026 DOJ
모든 권리 보유
해설

최소둘레 삼각형

문제로 돌아가기

해설

점들을 xxx좌표 순서로 정렬하고 분할 정복을 적용한다.

현재 점 집합을 왼쪽 절반과 오른쪽 절반으로 나눈 뒤, 각 절반에서 최소 둘레를 재귀적으로 구한다. 두 값의 최솟값을 δ\deltaδ라 하자. 이제 양쪽 절반의 점을 모두 사용하는 삼각형 중 둘레가 δ\deltaδ보다 작은 것이 있는지만 확인하면 된다.

둘레가 δ\deltaδ보다 작은 삼각형의 모든 변의 길이는 δ2\frac{\delta}{2}2δ​보다 작다. 한 변의 길이를 aaa, 나머지 두 변의 길이를 b,cb,cb,c라 하면 세 점이 한 직선 위에 있지 않으므로

a<b+ca<b+ca<b+c

이고, 따라서

2a<a+b+c<δ2a<a+b+c<\delta2a<a+b+c<δ

이다.

양쪽 절반의 점을 모두 사용하는 삼각형을 생각하자. 서로 다른 절반에 속한 두 꼭짓점의 거리가 δ2\frac{\delta}{2}2δ​보다 작으므로, 세 꼭짓점은 모두 분할선으로부터 수평 거리 δ2\frac{\delta}{2}2δ​ 미만인 띠 안에 있다. 또한 모든 변의 길이가 보다 작으므로 세 꼭짓점의 좌표 범위도 보다 작다.

따라서 분할선 주변의 띠에 속한 점들을 yyy좌표 순서로 정렬하고, yyy좌표 차이가 δ2\frac{\delta}{2}2δ​보다 작은 점들끼리만 확인하면 된다.

이 범위에 들어오는 점의 개수는 상수이다. 띠 안에서 높이가 δ2\frac{\delta}{2}2δ​인 임의의 수평 구간을 생각한다. 분할선의 왼쪽과 오른쪽은 각각 너비와 높이가 모두 δ2\frac{\delta}{2}2δ​ 이하인 직사각형이다.

각 직사각형을 가로로 222등분하고 세로로 333등분한다. 작은 직사각형 하나의 너비는 δ4\frac{\delta}{4}4δ​, 높이는 δ6\frac{\delta}{6}이므로 대각선 길이는

(δ4)2+(δ6)2=1312δ\sqrt{\left(\frac{\delta}{4}\right)^2+\left(\frac{\delta}{6}\right)^2} = \frac{\sqrt{13}}{12}\delta(4δ​)2+

이다.

같은 작은 직사각형 안에 같은 재귀 절반에 속하는 점이 세 개 있다면, 그 세 점으로 만든 삼각형의 둘레는

3⋅1312δ=134δ<δ3\cdot\frac{\sqrt{13}}{12}\delta = \frac{\sqrt{13}}4\delta <\delta3⋅1213​​

이다. 이는 해당 재귀 절반에서 구한 최소 둘레가 δ\deltaδ 이상이라는 사실에 모순이다.

따라서 작은 직사각형마다 점은 최대 두 개이다. 한쪽에는 작은 직사각형이 666개 있으므로 최대 121212개, 양쪽을 합치면 최대 242424개의 점만 존재한다.

결국 띠의 점들을 yyy좌표 순서로 보면서, 각 점 뒤의 상수 개 점으로 만들 수 있는 모든 삼각형을 확인하면 된다. 세 점이 모두 같은 재귀 절반에 속하면 이미 재귀 호출에서 확인했으므로 생략한다.

구현에서는 둘레를 직접 계산하기 전에 세 변의 제곱거리가 모두 (δ2)2\left(\frac{\delta}{2}\right)^2(2δ​)2보다 작은지 먼저 검사한다. 이 조건을 통과한 경우에만 제곱근을 계산하면 상수를 크게 줄일 수 있다.

각 재귀 단계에서 두 절반의 yyy좌표 정렬 결과를 선형 시간에 병합한다. 따라서 전체 시간 복잡도는

O(Nlog⁡N)O(N\log N)O(NlogN)

이고, 공간 복잡도는 O(N)O(N)O(N)이다.

Solution written by GPT5.6

δ2\frac{\delta}{2}2δ​
yyy
δ2\frac{\delta}{2}2δ​
6δ​
(6δ​)2
​
=
1213​​δ
δ
=
413​​δ<
δ