Бинарный поиск (30 октября 2013)
- Поиск по массиву [код]
- Задача: содержится ли число в массиве.
- Реализация. Отрезки vs полуинтервалы.
- Задача: найти количество чисел со значением от l до r. Нужно писать не два, а один двоичный поиск.
- Задача: найти количество чисел равных x, стоящих в позициях от L до R также решается двоичным поиском
- Вещественный бинпоиск [код]
- Поиск корня функции, реализация: while (r-l>eps)
- Реализация с циклом for(k,60) вместо while (r-l>eps)
- Бинпоиск по ответу, задачи
- Not read Разрезать доски на n одинаковых кусков максимальной длины (плюс обрубки)
- Найти точку сбора тараканов [код]
- Вписать окружность максимального радиуса в невыпуклый многоугольник
- Троичный поиск
- Нахождение локального минимума/максимума. Реализация через a=(2l+r)/3, b=(l+2r)/3
- Для выпуклых функций это тоже самое, что бинарный поиск по производной
- Для невыпуклых функций мы найдем какой-то минимум.
- Реализация через l,m,r
- Реализация через золотое сечение
- Более общий метод: разбить на куски, на каждом запустить троичный поиск
- Задача: описать вокруг выпуклого многоугольника прямоугольник минимальной площади
- Вложенные троичные поиски
- Вписать круг максимального радиуса в заданный выпуклый многоугольник за O(Nlog2M)
- Not read Минимизировать периметр треугольника. A фиксирована, B и C лежат на заданных окряжностях.
- Not read Сортировка деревом отрезков?