Лекции прочитанные на сборах
20 марта
Лекция D: Структуры данных – 1
- Списки. Односвязные и двусвязные. Добавление/удаление. Кольцевые списки.
- Стеки. Стеки на массивах и списках. Примеры простейших задач на стеки.
- Очереди. Очереди на списках. Очереди на массивах в виде циклического буфера.
- Деки. Задачи на деки. Лабиринты.
- Сортированные массивы. Бинарный поиск.
- Хэш-таблицы.
Лекция С: Структуры данных -1
- Простые структуры данных.
- Очереди и стеки.
- Списковые структуры, представление списков в массиве.
- Списки в динамической паматью
- Бинарный поиск, поиск k-го по величине в массиве
- Heap, Heap-sort и очередь с приоритетами
- Дерево отрезков
- Обзор
- Init
- Update
- Запросы
- Обобщение на многомерный случай
- Двойчные деревья поиска
- Поиск
- Добавление и удаление
- Сбалансированные деревья.
Лекция B: Геометрия
- Систематизация подходов к решению задач на вычислительную геометрию
- Метод границ
- Метод деления пополам
- Примеры
- Пример 1 – Задача о самолётах (см. ниже)
- Пример 2 – Задача о бассейне (см. ниже)
- Теорема Хэлли и её использование
- Разбиения плоскости
- Двоичное деление пространства (BSP-Trees)
- Построение BSP-Tree
- Алгоритмы на BSP-Tree и их эффективность
- Пример использования : точки, отдалённые от данной не более, чем на R
- Области Вороного
- Определение
- Свойства
- Использование областей Вороного в задачах
- Разбор задачи «Области Вороного на плоскости при использовании Матхэттенской метрики расстояния»
- Триангуляции
- Определение триангуляции
- Триангуляция Делоне
- Свойства триангуляции Делоне
- О двойственности триангуляции Делоне областям Вороного
- Алгоритмы построения триангуляции Делоне
- Алгоритм «Разделяй и Властвуй» для построения триангуляции Делоне : разбор
- Разбор задачи «Стол в колоннах»
- Стереометрия
- Эффективное использование скалярного и векторного произведений в пространстве
- Yet another алгоритм решения задачи об объёме общей части выпуклых тел
- Подробный разбор решения задачи «Пересечение кубов»
Задача о самолётах. Над единичным квадратом пролетели по прямым N самолётов. Каждый самолёт «видит» на расстояние K. Определить, остались ли в этом квадрате точки, которые не увидел ни один самолёт. Вариант: найти минимальное K, для которого таких точек не осталось.
Задача о бассейне. В единичном квадрате имеется несколько колонн (окружностей) одинакового радиуса. В этот квадрат хочется поместить круглый бассейн. Найти максимальный радиус этого бассейна.
Лекция A: Суффиксные деревья. Алгоритм Мак-Крейта построения суффиксного дерева за линейное время
- Суффиксное дерево, наивный алгоритм
- Сжатое суффиксное дерево, детали реализации
- Суффиксные ссылки
- Общий шаг алгоритма Мак-Крейта
- Добавление следующего суффикса, «скачок по счетчику»
- Сохранение структуры суффиксных ссылок
- Оценка количества действий O(n)
- Использование суффиксных деревьев
- Поиск подстроки в строке
- Обобщенное суффиксное дерево
- Количество различных подстрок в строке
- Наибольшая общая подстрока
- Поиск максимальных повторов