DSU
- Постановка задачи (join, get)
- Пример использования (для каждой пары вершин [a,b] найти путь: max вес на пути минимален)
- Решение списками: join суммарно за O(nlogn), get за O(1)
- Решение деревьями
- join за O(1), get за длину пути
- Эвристика "меньшее к большему". Варианты с ранками и размерами. Доказательство O(logn) для get.
- Эвристика сжатия путей. Доказательство O(logn) для этой эвристики (смотрим на количество тяжёлых рёбер).
- Доказательство O(log*n) для одновременного применения эвристик
- Ранг вершины сперва 0, затем растёт, затем
- Ранги по пути вверх растут
- Определяем крутые рёбра, считаем их число
- Считаем число не крутых рёбер
--- Перерыв ---
- Улучшаем рассуждение про O(mlog*n + n)
- До O(m + nlog*n)
- До O((m+n)log(log*n))
- Доказательство c обратной функцией Аккерамана
- Вводим прямую функцию Аккермана, оцениваем A1, A2, A3
- Вводим прямую обратную Аккермана
- Вводим потенциал для оценки СНМ (level, iter)