- Графы - база
- dfs
- bfs
- ford-bellman, реализация с очередью
- floyd
- поиск отрицательного цикла
- MST (Прим, Краскал)
- Игры
- Динамическое программирование, игры на ацикличных графах
- Ретроанализ, игры на графах с циклами
- Функция Гранди
- Функция Смита
- Перебор
- Метод ветвей и границ. Отсечение по ответу.
- Iterative Deepening. dfs vs bfs.
- Приближенные методы
- Локальные оптимизации
- Генетический алгоритм
- Отжиг
- Вероятностыне алгоритмы
- Las-Vegas
- Monte-Karlo
- Каргер-Штейн
- Коммивояжер
- MST x 2, MST x 3/2
- Nearest
- Локальные оптимизации для Коммивояжера
- Двудольные графы
- Паросочетание, контролирующее множество, независимое множество
- Лемма о дополняющем пути
- Лемма Холла
- Алгоритм Куна
- Алгоритм Хопкрофта-Карпа
- Раскраска ребер двудольного графа
- Покрытие ацикличного графа min числом цепей.
- Теорема Дилворта.
- Раскраски
- Теорема Брукса
- Теорема Визинга
- Алгоритм раскраски вершин планарного графа в 6 цветов.
- Потоки
- Поток, разрез.
- Теорема Форда-Фалкерсона.
- Алгоритм Эдмондса.
- Алгоритм Масштабирования потока.
- Алгоритм Диница.
- Вершинные поток и разрез. Поток и разрез (реберные и вершинные) в неорграфе.
- MinCost поток. Отсутствие отрицательных циклов.
- Лемма о дополняющем пути для MinCost потока.
- Дейкстра с потенциалами.
- Задача о назначениях, транспортная задача.
- [L,R] потоки.
- Алгоритм Штор-Вагнера
- Декартовы деревья
- Дерево по явному ключу. Операции Split и Merge.
- K-th, Add(L, R), GetSum(L, R),
- Дерево по неявному ключу. Reverse(L, R), Insert(i), Delete(i).
- Построение за O(N) дерева по неявному ключу.
- RSQ, RMQ, Деревья отрезков
- RSQ: Неменяющийся массив
- RMQ: Неменяющийся массив, Sparse table
- RSQ: Меняющийся массив, дерево Фенвика.
- RSQ, RMQ: Меняющийся массив, дерево отрезков.
- Прибавление и присваивание на отрезке.
- RSQ и RMQ на неменяющейся матрице
- RSQ и RMQ на меняющейся матрице, двумерные деревья отрезков и Фенвика.
- Квадродерево на матрице.
- 2D-запросы и деревья
- 2D дерево отрезков
- КД-дерево
- Дерево отрезков декартовых деревьев.
- LCA, Функции на путях дерева
- Разбиение дерева через LCA, Offline и Online задачи.
- Offline поиск LCA.
- 2 метода Online поиска LCA.
- Веса ребер дерева не меняется, RSQ и RMQ
- Веса ребер дерева меняется, RSQ и RMQ
- Покрытие дерева путями, сведение запроса на пути к 2D запросу.
- Численные методы
- Бинарный поиск
- Троичный поиск
- Градиентный спуск
- Усовершенствованные поиски
- Поиск вещественных корней многочлена
- Теория чисел
- Решето Эратосфена
- Тест Ферма, тест Миллера-Рабина.
- Эвристика Полларда
- Cтроки
- Полиномиальный хэш
- Хэштаблицы со списками и с открытой адресацией.
- Коллизии у полиномиальных хэшей и хэш-таблицы
- Задачи: Поиск слов в тексте, наибольшая общая подстрока, наибольший подпалиндром.
- Суффиксный массив хэшами
- Суффиксный массив цифровой сортировкой
- LCP для суффиксного массива. Алгоритм Касаи.
- Бор. Суф.дерево. Способы хранения бора.
- Сжатый бор, сжатое суффиксное дерево, получение из суф.массив
- Алгоритм Укконена.
- Алгоритм Ахо-Корасика.
- Паросочетания в произвольном графе
- Лемма Татта-Берджа
- Теорема о дополняющем чередующемся пути.
- Алгоритм Эдмондса
- Рандомизированный алгоритм
- Матроиды
- Определение. Алгоритм Радо-Эдмондса.
- Графовый матроид.
- Трансверсальный матроид (паросочетания).
- Векторный матроид.
- Планарные графы
- Теоерема Эйлера
- Укладка в R3, на сфере
- Док-во того, что K3,3 и K5 не планарны. Теорема Куратовского.
- Алгоритм Демукрона.
- Алгоритм разбиение графа на грани. Выделение внешних граней.
- 2-SAT
- Формулировка 2-SAT, 3-SAT.
- Жадное решение за O(VE), док-во.
- Решение за O(E).
- Нейрон
- Задача классификации. Что такое нейрон. Разделение на >= 1 и <= t.
- Обучение Нейрона с помощью Л.П.
- Обучение Нейрона с помощью Градиентного спуска.
- Решение задачи "Кто автор этого стиха? Пушкин или Лермонтов?"
- Реализация Simplex метода.