Heavy-light декомпозиция — различия между версиями
(Новая страница: «'''Heavy-light декомпозиция''' {{---}} техника разбиения дерева на множество рёберно-непересекающ...») |
(нет различий)
|
Версия 22:06, 3 июня 2015
Heavy-light декомпозиция — техника разбиения дерева на множество рёберно-непересекающихся путей так, чтобы при прохождении от одной вершины до другой произошла смена не более, чем
путей.Содержание
Описание задачи
Пусть у нас есть дерево
c вершинами и нам нужно проводить операции на нем на пути от вершины до вершины . Множество подобных запросов делаются за время при Heavy-light декомпозиции.Описание декомпозиции
Декомпозиция заключается в классификации всех рёбер дерева
в 2 вида: легкие и тяжёлые. Введём функцию , которая будет обозначать размер поддерева вершиныТяжёлые ребра — ребра
такие, что .Лёгкие ребра — соответственно все остальные.
Теперь рассмотрим вершины, из которых не ведет ни одно тяжёлое ребро. Будем идти от них вверх до корня или пока не пройдем легкое ребро. Получится какое-то множество путей. Утверждается, что оно будет являться искомым.
Доказательство корректности полученной декомпозиции
Ну там понятно вроде
Примеры задач
Some examples