2017.A-AA

Темы прочитанных лекций в 2017.Август.АА/A-ML

  1. Персистентные структуры данных
  2. Быстрое преобразование Фурье
  3. Максимальный поток и минимальный разрез
  4. Потоки минимальной стоимости
  5. Матроиды, базовые понятия и теоремы
  6. Пересечение и объединение матроидов
  7. Геометрия, базовые примитивы и применения
  8. Геометрия, продвинутые алгоритмы
  9. LCA, LA
  10. HLD, Centroid decomposition
  11. Суффиксный автомат
  12. Морской бой A1 vs. A2
  13. Приближенные алгоритмы и оптимизации ДП

День 01, лекция

Персистентные структуры данных

  1. Что такое персистентность (частичная, полная, ...)
  2. Примеры персистентных структур данных
  3. Примеры задач на персистентные СД
  4. (*) Частичная персистентность за O(1), скетч

День 02, лекция

Быстрое преобразование Фурье и всякие мелочи.

  1. Умножение больших чисел, умножение многочленов, мотивация и сведение первого ко второму.
  2. Введение в комплексные числа
  3. Многочлены
  4. FFT над целыми числами.
  5. Полезные задачи

День 03, лекция

Максимальный поток и минимальный разрез.

  1. Базовые определения
  2. Теорема Форда-Фалкерсона о равенстве максимального потока и минимального разреза
  3. Декомпозиция потока
  4. Алгоритм Эдмондса-Карпа
  5. Схема алгоритмов с масштабированием
  6. Алгоритм Диница

День 04, лекция

Потоки со стоимостью и венгерский алгоритм.

  1. Базовые определения
  2. Связь минимальности потока и отсутствия циклов отрицательной стоимости в остаточной сети
  3. Оптимизированный алгоритм Форда-Беллмана
  4. Потенциалы Джонсона
  5. Поиск потока минимальной стоимости с использованием алгоритма Дейкстры
  6. Венгерский алгоритм

День 05, лекция

Матроиды, часть 1

  1. Определения: независимые множества, аксиомы матроидов, база, цикл
  2. Примеры матроидов
  3. Прямая сумма матроидов
  4. Теорема о базах
  5. Теорема о циклах

День 06, лекция

Матроиды, часть 2

  1. Пересечение матроидов
  2. Объединение матроидов

День 07, лекция

Геометрия, часть 1

  1. Базовые примитивы, скалярное/векторные произведения
  2. Предикат "точка внутри окружности, описанной вокруг треугольника"
  3. Сортировка по углу
  4. Алгоритмы построения выпуклой оболочки
  5. Вращающиеся калиперы
  6. Двоичный поиск по выпуклому многоугольнику

День 08, лекция

Геометрия, часть 2

  1. Сумма Минковского
  2. Пересечение полуплоскостей, предикат проверки трех прямых на выпуклость
  3. Ушная триангуляция
  4. Минимальная объемлющая окружность, рандомизированный алгоритм
  5. 3D геометрия, примитивы
  6. Два алгоритма построения выпуклой оболочки за O(N^2)

День 09, лекция

LCA & LA

  1. LCA
  2. Алгоритм Фарака-Колтона и Бендера
  3. LA

День 10, лекция

  1. Centroid decomposition

  2. Задачки на центроиды

  3. Heavy-light decomposition

  4. Задачки на HLD

День 11, лекция

Суффиксный автомат

  1. Конечные автоматы, определение, примеры.
  2. Суффиксный автомат, определение, пример.
  3. Правые контексты, свойства
  4. Дерево правых контекстов, оценка на число вершин
  5. Модификация правых контекстов, при добавлении новой буквы к слову.
  6. Алгоритм построения
  7. Схема доказательства линейности времени работы

День 13, лекция

Приближенные алгоритмы

  1. Мотивация
  2. MAX3SAT
  3. VertexCover
  4. TSP, 2-OPT
  5. TSP, 1.5-OPT (Cristofildes).
  6. MaxClique
  7. SetCover

Оптимизации ДП

  1. Кнут
  2. Кнут-2
  3. CHT
  4. D&C
  5. \lambda