--- id: max-flow title: "Maximum Flow" author: Benjamin Qi prerequisites: - Gold - Breadth First Search description: Introduces maximum flow as well as flow with lower bounds. frequency: 1 --- import { Problem } from "../models"; export const metadata = { problems: { maxSam: [ new Problem("CSES", "Download Speed", "1694", "Easy", false, ["Max Flow"], ""), ], flow: [ new Problem("CSES", "Distinct Routes", "1711", "Easy", false, ["Max Flow"], ""), ], match: [ new Problem("CSES", "School Dance", "1696", "Easy", false, ["Max Flow"], ""), new Problem("Old Gold", "Cow Steepchase", "93", "Easy", false, ["Max Flow"], ""), ], dinic: [ new Problem("SPOJ", "Fast Flow", "FASTFLOW", "Easy", false, [], ""), new Problem("YS", "Bipartite Matching", "bipartitematching", "Easy", false, [], ""), ], minEx: [ new Problem("CSES", "Coin Grid", "1709", "Easy", false, [], ""), ], cut: [ new Problem("CSA", "Fashion", "fashion", "Normal", false, [], ""), new Problem("CF", "Card Game", "problemset/problem/808/F", "Normal", false, [], ""), new Problem("CF", "Goods Transportation", "problemset/problem/724/E", "Hard", false, [], ""), new Problem("AC", "ARC E - MUL", "http://arc085.contest.atcoder.jp/tasks/arc085_c", "Hard", false, [], ""), ] } }; ## Maximum Flow ### Tutorial ### Problems ## Bipartite Matching ## Dinic's Algorithm Hopcroft-Karp Bipartite Matching? There exist faster flow algorithms such as **Push-Relabel**. Also see the following blog post: - [Chilli: Dinic's with Scaling](https://codeforces.com/blog/entry/66006) However, the standard implementation of Dinic's is (almost) always fast enough. ## Min-Cut Max Flow (show equivalence) Konig's? - [Closure Problem](https://en.wikipedia.org/wiki/Closure_problem)? Dilworth stuff, antichains? https://maps20.kattis.com/problems/thewrathofkahn ## Problems