92 lines
2.5 KiB
Text
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} />
|