|
Кружок обучения мастерству программирования при СПбГУ |
Лекции группы A0 - Лекция 05 - Еще кое-что про Деревья
Note: Звездочкой отмечены темы, на которые на лекции времени не хватило.
Краткий план лекции на тему "Еще кое-что про Деревья"
- Курсовая от Сени Смирнова
- Изоморфизмы деревьев за O(nlogn), O(n)
- LCA offline и online
- Функции на путях дерева в offline и online
- Геометрия, несколько offline алгоритмов
Полный план лекции
- Курсовая от Сени Смирнова
- Доказательство амортизационной оценки O(mlogn) на сжатие путей в СНМ
- Изоморфизм деревьев и динамика по дереву
- Для каждого ребра посчитать, S1 * S2 --- произведение размеров поддеревьев
- Посчитать сумму длин всеx путей в дереве
- Изоморфизм подвешенных деревьев за O(nlogn)
- Изоморфизм подвешенных деревьев за O(n) с хэшами
- Изоморфизм НЕ подвешенных деревьев за O(nlogn)
- Для каждого ребра посчитать, суммарную длину путей, через него проходящих
- Функция на пути дерева = LCA + функция на вертикальном пути
- LCA, классические простые алгоритмы
- LCA-Offline (Ахо-Ульман-Тарьян)
- Сведение к дереву отрезков лево-праым обходом
- Метод двоичных подъемов
- Функции на путях дерева в offline
- Сумма offline за [O(n), O(1)]
- Минимум offline за [O(nlogn), O(logn)] (метод двоичного подъема)
- Минимум offline за [O(n), O(logn)] (СНМ, подъем снизу вверх)
- Функции на путях дерева в online
- Сумма online за [O(n), O(logn)] (дерево отрезков с +-1)
- Минимум online за [O(n), O((logn)^2)] (покрытие путями, путь = дерево отрезков)
- Минимум online за [O(nlogn), O((logn)^2)] (время входа-выхода => 2D дерево отрезков)
- Минимум online амортизационно за O(mlogn) - применяем Splay-tree
- Offline методы в геометрии - ScanLine
- K точек. Определить, где они находятся, относительно невыпуклого N-угольника за O(NlogN + KlogK).
- В случае выпуклого O(N + KlogK)
- Поиск экстремальных точек для K прямых и выпуклого N-угольника за O(N + KlogK)
- Для невыпуклого = построить выпуклую оболочку