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