## ЛКШ 2018, 4-й день, 2D геометрия (Илья Подуременных)

1. Два указателя, задачи решающиеся за O(n)

1. 2 самые дальние точки (калиперы) - первую точку нашли, дальше двигаем на меньший угол
2. Общая касательная (2 указателя) - нашли от одной точки, а потом двигаем указатель

2. Бинпоиски, задачирешающиеся за полилог

1. Локализация точки (1 бинпоиск) - 2 способа (из вершины, из центра)
2. Расстояние от точки до прямой
3. Опорная прямая, 2 штуки (2 бинпоиск) - бипоиск по углу − 2 способа
4. Самая дальная по направлению точка (ax + by → max) (1 бинпоиск) - перейти к опорной (связь с проекцией)
5. Пересечение прямой с многоугольником (3 бинпоиска) - 1 точку взяли, 2-ую бинпоиском, между ними 2 бинпоиска
6. Касательные из точки к многоугольнику (2 бинпоиска) - взяли любую точку и один бинпоиск по векторному произведению "та самая функция"
7. Ближайшая (3 бинпоиск) - нашли 2 касательные и бинпоиск между ними
8. Общая касательная - зафиксировали касательную, бинпоиск относительно неё
9. Расстояние между многоугольгиками - построили общие касательные, бинпоиск между ними

3. Сумма Минковского

1. Определение, построение за O(n+m)
2. Path finding для многоугольника с многоугольными препятствиями, асимптотический оптимайз
3. Проверить, пересекаются ли два многоугольника за O(n+m), найти расстояние за O(n+m)

4. Динамическая выпуклая оболочка

1. Точки только добавляются ⇒ set, все наши методы за O(logn) всё ещё работают (заменили бинпоиск на спуск по дереву)
2. И добавляются, и удаляются ⇒ дерево отрезков по X, пересчёт через детей общей касательной и персистентным treap