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/5_Plat/Flows.mdx
Benjamin Qi 0c1d150c1b ++
2020-07-18 23:32:24 -04:00

92 lines
2.4 KiB
Text

---
id: max-flow
title: "Maximum Flow"
author: Benjamin Qi
prerequisites:
- bfs
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 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 problems={metadata.problems.flow} />
## Bipartite Matching
<Problems problems={metadata.problems.match} />
## Dinic's Algorithm
<Problems problems={metadata.problems.dinic} />
Hopcroft-Karp Bipartite Matching?
<Optional 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>
## Min-Cut Max Flow
<Problems 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 problems={metadata.problems.cut} />