This repository has been archived on 2022-06-22. You can view files and clone it, but cannot push or open issues or pull requests.
usaco-guide/content/6_Plat/Flows.mdx
2020-06-28 12:03:46 -04:00

92 lines
2.5 KiB
Text

---
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
<problems-list problems={metadata.problems.maxSam} />
### Tutorial
<resources>
<resource source="CPC" title="10 - Network Flow" url="10_graphs_3_network_flow"> </resource>
<resource source="CPH" title="20 - Flows & Cuts"> </resource>
</resources>
### Problems
<problems-list problems={metadata.problems.flow} />
## Bipartite Matching
<problems-list problems={metadata.problems.match} />
## Dinic's Algorithm
<problems-list problems={metadata.problems.dinic} />
Hopcroft-Karp Bipartite Matching?
<optional-content title="Faster Flow">
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.
</optional-content>
## Min-Cut Max Flow
<problems-list problems={metadata.problems.minEx} />
(show equivalence)
Konig's?
- [Closure Problem](https://en.wikipedia.org/wiki/Closure_problem)?
Dilworth stuff, antichains?
https://maps20.kattis.com/problems/thewrathofkahn
## Problems
<problems-list problems={metadata.problems.cut} />