Изменения

Перейти к: навигация, поиск
м
Откат правок 185.220.100.241 (обсуждение) к версии Ехменин Семен
==Решение==
===Суть===
[[Файл:cgslabsЛокация точки.png|200px400px|thumb|right]]
Проведём через каждую вершину вертикальную прямую. Получим полосы (slabs). Пусть каждой полосе соответствует точка, через которую проведён левый край полосы. Будем хранить отсортированный массив <tex>x</tex>-координат, тогда за <tex>O(\log n)</tex> можно найти, в какой полосе лежит <tex>P</tex>.
В каждой полосе отрезки, составляющие ППЛГ, могут пересекаться только в концах, причём эти точки пересечения могут лежать только на прямых, ограничивающих полосы (по построению). Получается, что внутри каждой полосы можно отсортировать отрезки, которые лежат в ней, например, снизу вверх. Тогда, найдя нужную полосу, можно быстро найти нужный отрезок.
 
[[Файл:Одномерная задача.png]]
===Персистентные деревья===
*Sarnak, Tarjan "Planar Point Location Using Persistent Search Trees"
*de Berg и компания, Computational Geometry, третье издание, стр. 122-123
*[http://wwwisg.cs.uni-magdeburg.de/ag/lehre/WS1213/GDS/slides/S12.pdf] Тут есть чуть подробнее про персистентные деревья

Навигация