문제 링크
- http://icpc.me/2802
문제 출처
- 2011/2012 COCI Contest #6 5번
사용 알고리즘
- 누적합
시간복잡도
- $O(N + 256^3 \log 256)$
풀이
어떤 값을 최소화하는 문제이니 정답이 $T$ 이하인지 판별하는 파라메트릭 서치를 생각해볼 수 있습니다.
각 크레용을 3차원 좌표 공간 상에서 $(r_i, g_i, b_i)$ 꼴의 점으로 표현할 수 있습니다.
어떤 점 $(x, y, z)$가 있어서, $(x, y, z)$부터 $(x+T-1, y+T-1, z+T-1)$까지의 공간에 $K$개 이상의 점이 판별할 수 있으면 됩니다. 이 결정 문제는 3차원 누적 합을 이용해 $O(256^3)$에 해결할 수 있고, 따라서 전체 문제를 $O(N + 256^3 \log 256)$에 문제를 풀 수 있습니다.
전체 코드
1 |
|