Изменения

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

Сведение задачи LCA к задаче RMQ

235 байт добавлено, 19:33, 12 июня 2012
Препроцессинг: naming and formatting
== Алгоритм ==
=== Препроцессинг ===
1) В каждом узле будет храниться глубина узла в корневом дереве Для каждой вершины <tex>T.</tex>определим глубину вершину с помощью следующей рекурсивной формулы:
:<tex>depth(u)= \begin{cases}
0 & u = root(T),\\
depth(v) + 1 & u = son(v).\end{cases}.</tex>Ясно, что глубина вершины элементарным образом поддерживается во время обхода в глубину.
2) Запустим [[Обход в глубину, цвета вершин|обход в глубину]] из корня, который будет строить список посещений узлов<tex>d</tex>. Глубина текущей вершины добавляется в список конец списка при входе в эту данную вершину, а также после каждого возвращения из её сына.
=== Запрос ===
Анонимный участник

Навигация