Паросочетание
- Рандомизированный алгоритм поиска паросочетания в произвольном графе
Структуры данных
- Замыкание идеи "Sparse Table" [O(n), O(log*n)]
- Сведение RMQ к LCA (построение декартового дерева за O(n)).
- Offline решение RMQ за O(n)
- Минимум на отрезке фиксированной длины за O(1).
- Минимум на движущемся вправо отрезке произвольной длины за O(n+k).
- Неменяющееся дерево. Функции на путях.
- Обход дерева dfs-ом. Offline функция на пути дерева = запрос на отрезке в дереве отрезков.
- Обобщение Sparse Table: O(K + NlogN)
- Offline Минимум: сжатие путей: O(KlogN)
- Online Минимум = LCA + "двоичные подъемы"
- СНМ
- Реализация за O(NlogN + K)
- Реализация за O(α)
- Док-во того, что сжатие путей = O(logN)
- Док-во того, что подвешивание меньшего к большему дает глубину O(logN)
- Док-во того, что обе эвристики работаею за O(log*)