Про графы [см. 2012-02-09]
- Сила dfs-а
- Ориентация графа (запустить один dfs)
- Мосты (min время входа)
- Точки сочленения (min время входа)
- Эйлеров путь и цикл
- Признак эйлеровости
- Путь = цикл - ребро
- Будем идти из вершины v вперед, пока можем. Что получится?
- Поиск цикла dfs-ом со стэком
- Циклы
- Минимальной длины за O(E*bfs), за O(V*bfs), граф не взвешенный (в неорграфе, в орграфе).
- Минимальной длины,за O(E*Dijkstra), за O(V*Dijkstra) граф взвешенный
- Отрицательный с помощью FB (см. восстановление пути)
- Отрицательный с помощью Floyd (см. восстановление пути)
- Цикл минимального среднего веса за O(VElog) (с бинпоиском)
- Цикл минимального среднего веса за O(VE) (без док-ва)
Про игры [см. 2012-02-16]
- Функция Гранди
- Пример про Ним
- Пример про Скамейки и Рассадку
- Смысл: игр много. Если игра всего одна, мы ее полностью исследовали за O(E) в предыдущем пункте.
- Функция Гранди. Определения через mex, (mex = 0) <=> LOSE.
- Реализация за O(E).
- Прямая сумма игр, сила xor-а.
- Док-во того, что mex(A+B)=mex(A)^mex(B) табличкой 2n x 2n.
Задачи (примеры) к играм
- Ним, но можно брать только a1, a2, ..., ak
- Ним + кучку можно делить пополам
- Ним + можно делить на произвольное число слагаемых
- Штирлиц, Мюллер и очередь
- Поедание 3D шоколадки (есть всегда меньшую половину)
- Поедание 3D шоколадки (можно есть любую половину) [решение за O(1)]
- Hacking-Bush
Перебор
- Полный перебор.
- Рекурсия.
- Предподсчет (на примре задачи "количество графов без мостов из N вершин").
- Отсечения в переборе.
- Отсечение по времени.
- Memorization (хэширование, динамика) - IMPORTANT
- Отсечение по ответу - IMPORTANT