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

Revision ru1, by Diplomate, 2017-01-05 15:02:42

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

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

History

 
 
 
 
Revisions
 
 
  Rev. Lang. By When Δ Comment
ru1 Russian Diplomate 2017-01-05 15:02:42 961 Первая редакция (опубликовано)