Найти точку, накрытую наибольшим числом прямоугольников (сканирующая прямая).

Правка ru1, от Diplomate, 2017-01-05 15:02:42

Решаю задачу из Открытой олимпиады 2014-2015 года, если кому интересно, вот условие и разбор, задача последняя и в условиях, и в разборе. Путем некоторых хитрых преобразований задача была сведена к следующей, если я правильно понял: дана координатная плоскость, и какие-то координаты на одной оси, и какие-то координаты на другой. На пересечении всех этих координат находятся наши точки. Далее дано несколько прямоугольников, и надо найти точку, накрытую наибольшим числом прямоугольников. Решение с двумерным деревом отрезков/Фенвика довольно очевидно, но есть более быстрое решение с одномерным деревом и сканирующей прямой. В сканирующей прямой я пока разбираюсь слабо, поэтому не очень понимаю, как это именно реализовывать. Буду благодарен за помощь. :)

Теги сканирующая прямая, дерево отрезков, дерево фенвика, плоскость

История

 
 
 
 
Правки
 
 
  Rev. Язык Кто Когда Δ Комментарий
ru1 Русский Diplomate 2017-01-05 15:02:42 961 Первая редакция (опубликовано)