Изменения

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

Link-Cut Tree

18 байт убрано, 22:04, 10 июня 2014
Отмена правки 38392 участника Lena (обсуждение)
==Link-cut tree==
Чтобы обобщить, разобьем дерево на множество непересекающихся путей. Каждое ребро обозначим либо solid-ребром, либо dashed-ребром. Все пути в link-cut дереве хранятся в виде splay-деревьев. Корень каждого splay-дерева хранит указатель на вершину-родителя. В дальнейшем будем называть этот указатель <tex>\mathrm{pathparent}</tex>.
[[Файл:Linkcut_paths.png|500px||center|Разбиение дерева на пути]]
'''return''' pathparent(splay(u))
Первый вызов <tex>\mathrm{expose}</tex> построит путь от <tex>u</tex> до корня. Второй пересечет этот путь в наименьшем общем предке, поэтому в splay-дереве, которому принадлежит <tex>u</tex>, хранится указатель <tex>\mathrm{pathparent}</tex> на <tex>\mathrm{lca}</tex>, после <tex>\mathrm{splay}(u)</tex> он будет находиться в <tex>u</tex>.
==Ссылки==
234
правки

Навигация