문제 링크
- http://icpc.me/2473
문제 출처
- 2010 전국 본선 고등1
사용 알고리즘
- Parametric Search
시간복잡도
- O(n2 log n)
풀이
N이 5000이므로 N2이나, 뒤에 로그가 딸려오는 수준으로 구현해야 하고, 둘 다 가능합니다. 전자는 슬라이딩 윈도우, 후자는 파라메트릭 서치로 구현이 가능합니다. 이 글에서는 후자의 방법을 설명합니다.
N2으로 두 개의 용액을 선택합니다. 두 용액의 특성값의 합을 t라고 한다면, 선택된 두 용액을 제외한 N-2개의 용액에서 -t와 가까운 용액을 찾습니다. (lower_bound 혹은 upper_bound) 이 작업은 log N만에 가능합니다. 혹시 모르니 ±2 정도의 범위까지 탐색을 해줍시다.
위 방법으로 O(N2 log N)만에 해결 가능합니다.
전체 코드
1 |
|