Изменения

Перейти к: навигация, поиск

Level Ancestor problem

36 байт убрано, 17:27, 25 июня 2021
Ladder decomposition
Это улучшение Longest-path декомпозиции, позволяющее, как мы потом докажем, подниматься на любую высоту за <tex>O(1)</tex>. Выполним его следующим образом: увеличим каждый путь в два раза вверх, для каждого нового пути сохраним все входящие в него вершины,
а для каждой вершины сохраним ее номер в пути, в который она входит. Построение обычной longest-path декомпозиции займет у
нас <tex>O(n)</tex> времени (обход в глубину), соответственно удлиннение каждого пути не ухудшит асимптотику до <tex>O(n \log n)</tex>.
После этого посчитаем двоичные подъемы для каждой вершины за <tex>O(\log n)</tex>, что соответственно не ухудшит асимптотикуполучим итоговую оценку <tex>O(n \log n)</tex> на предподсчет.
=== Псевдокод ===
Анонимный участник

Навигация