Функции на путях в дереве, MST за O(E) (15 марта 2016)
- [15 минут] (RMQ → LCA) + LCA-Offline = RMQ-Offline.
- [15 минут] Сумма на пути дерева в Online
- Случай, когда веса не меняется
- Случай, когда веса рёбер меняются
- Случай, когда веса вершин меняются (биекция вершин и рёбер)
- [25 минут] MST за линейное время
- Проверка MST на минимальность за линейное время
- Алгоритм = 3 шаги Борувки + построить от случайной половины рёбер + выкинуть F-тяжёлые + построить от оставшихся
- Лемма о количестве F-тяжёлых рёбер с доказательством: (n - 1)(1/p - 1)
- Оценка времени в среднем O(n+m)
- Оценка времени в худшем min(O(n2), O((n+m)logn))
--- Перерыв ---
- [30 минут] Минимум на путях дерева, веса не меняются
- Существующие online решения
- Сentroid decomposition за O(m + nlogn)
- Двоичные поъёмы за O(mlogn + n)
- Offline решения
- dfs + дерево отрезков за O((m+n)logn)
- Со сжатием путей за O((m+n)logn). На практике рулит.
- Попытка добавить ранговую эвристику, чтобы было O((m+n)α)