Потоки
- [Ваня] Потоки
- Два неперсекающихся по ребрам пути − поток. k неперсекающихся по ребрам пути − поток.
- Определение потока (f) в общем случае. 0 ≤ f ≤ c. Сумма f для каждой вершины = 0. f[e] = -f[e']
- Разрез. Min Cut ≤ Max Flow.
- Теорема и алгоритм Форда Фалкерсона поиска потока за O(|f| × E)
- Декомпозиция потока (разбиение на пути и циркуляцию) за O(E2). За O(VE).
- Решение задачи о k неперсекающихся по ребрам пути. Картинка, почему "просто k раз пустить dfs" не работает.
- Непересекающиеся по вершинам пути. Раздвоение вершин.
- Ориентированный граф и неориентированный граф. Два способа представления неориентированного.
- Нахождение паросочетания в двудольном графе с помощью потока за O(VE).
- [Ваня] Потоковые Фишечки
- Несколько истоков и стоков
- Избытки и недостатки в вершинах
- [L,R]-циркулция (с нижними и верхними ограничениями)
- [Ваня] Алгоритмы поиска потока
- Общая идея #1: проталкивать максимум
- Эдмондс-Карп (bfs, VE2 = E × VE). А еще он работает на вещественных пропускных способностях.
- Масштабирование, оно же Scaling (2k, E2logU, а в реальности даже E2)
- [Ваня] Задачи
- [flow] Выделение k-регулярного рёберного подграфа из двудольного (определок: совершенное паросочетание, регулярность)
- [flow] Восстановление матрицы (есть суммы строк и столбцов, каждое число от 0 до 100)
- [flow] Турнирная таблица (нужно доиграть несыгранные матчи, чтобы получились нужные суммы очков)
- [NP-hard] Поиск A-B и C-D путей