Изменения

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

Алгоритм Тарьяна поиска LCA за O(1) в оффлайн

302 байта добавлено, 16:46, 9 июня 2014
Реализация
'''function''' union(a x : '''int''', b y : '''int''', newAncestor : '''int'''): a x = dsuGet(ax) b y = dsuGet(by) '''if''' r[x] == r[y] <font color=green> // ранговая эвристика </font> r[x]++ '''else if''' r[x] < r[y] swap(x, y) dsu[ay] = bx ancestor[bx] = newAncestor<font color=green> // устанавливаем нового предка представителю множества </font>
<font color=green>// можно запустить от любой вершины дерева.</font>

Навигация