Изменения

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

Алгоритм Шибера-Вишкина

344 байта убрано, 22:02, 23 июня 2012
Обработка запроса
==Обработка запроса==
Пусть <tex>x</tex>, <tex>y</tex> {{---}} вершины в исходном дереве <tex>LCA</tex> которых необходимо найти. Если <tex>\operatorname{inlabel} x = \operatorname{inlabel} y</tex>, то они принадлежат одному простому пути, а следовательно ответом на запрос является <tex>x</tex>, если <tex>\operatorname{level} x \le \operatorname{level} y</tex>, и <tex>y</tex>, в противном случае. Теперь рассмотрим случай, когда <tex>\operatorname{inlabel} x \ne \operatorname{inlabel} y</tex>, то есть <tex>x</tex> и <tex>y</tex> принадлежат разным простым путям.
 
Сначала найдем <tex>LCA(\operatorname{inlabel} x, \operatorname{inlabel} y)</tex> по каркасным ребрам. Для этого вомпользуемся посчитанными значениями <tex>\operatorname{ascendant} v</tex>. После этого найдем <tex>\operatorname{inlabel} LCA(x, y)</tex>.
{{Утверждение
Анонимный участник

Навигация