Изменения
Нет описания правки
Динамические деревья (англ.''link-cut trees'') используются в двух областях: потоки и динамические графы.
В первом случае динамические деревья позволяют построить эффективные алгоритмы для задачи о поиске максимального потока.
В динамическом графе периодически происходят изменения: появляются и исчезают ребра, меняются их веса. Изменения нужно быстро обрабатывать, а также уметь проверять связность, искать диаметр. Динамические деревья являются инструментом, который позволяет легко решать эти задачи. Динамические деревья особенно эффективны, когда нужно работать с большими деревьями и большим количеством запросов '''link''' и '''cut'''.
'''Link-cut tree''' (''dynamic tree'') {{---}} это структура данных, которая хранит лес деревьев и позволяет выполнять следующие операции:
* '''min(v)''' {{---}} искать минимум на пути от вершины до корня;
*[http://www.lektorium.tv/lecture/14464 А.С. Станкевич, Дополнительные главы алгоритмов, Link-cut trees]
*[https://sites.google.com/site/indy256/algo/link-cut-tree-lca Реализация LCA на link-cut дереве]
*[http://www.cs.cmu.edu/~sleator/papers/dynamic-trees.pdf ''D. Sleator and R. Tarjan''. A Data Structure for Dynamic Trees]
*[http://compgeom.cs.uiuc.edu/~jeffe/teaching/datastructures/2006/notes/07-linkcut.pdf Jeff Erickson. Lecture 7. Link-Cut Trees]
*[http://planarity.org/Klein_splay_trees_and_link-cut_trees.pdf Optimization Algorithms for Planar Graphs. Splay trees and link-cut trees]