These notes assume the base routine is already familiar and focus on the first real structural upgrades.
Bipartite Matching
This branch collects problems where the cleanest solution is to phrase the whole task as conserved flow or structural matching.
Network formulations for path packing, assignment, and constrained transfer.
Some problems only look combinatorial until the constraints line up and the clean model is flow. This category is for those reductions: send units through a network, enforce conservation, and let the residual structure do the work.
The current baseline covers the three core tools I expect to reuse most often: Dinic for max flow, bipartite matching when the graph structure is already clean, and min-cost max-flow when the model needs an optimization layer on top of feasibility. The next additions here should be more specialized routines such as Hungarian or general matching.
The labels are not cosmetic. They are there to signal the amount of prerequisite structure and implementation fragility you should expect before opening the note.
These notes assume the base routine is already familiar and focus on the first real structural upgrades.
Bipartite Matching
These are the notes where proofs, reductions, or implementation details become the main bottleneck.
Dinic, Hopcroft-Karp, Min-Cost Max-Flow
These are the finished note pages in this category, each with rendered TeX, C++ code, references, and practice suggestions.
A layered-network max-flow algorithm that is fast enough for most contest flow models and reusable in many reductions.
Match the two sides of a bipartite graph efficiently, and recognize when the problem is assignment rather than general flow.
Find a maximum bipartite matching faster than repeated DFS by growing many shortest augmenting paths in one phase.
Send flow while optimizing total cost, which turns assignment and constrained transport models into graph problems.
The default order follows each note's dependency weight: early notes establish primitives, later notes reuse them or assume the same invariants without re-explaining them.
A layered-network max-flow algorithm that is fast enough for most contest flow models and reusable in many reductions.
Match the two sides of a bipartite graph efficiently, and recognize when the problem is assignment rather than general flow.
Find a maximum bipartite matching faster than repeated DFS by growing many shortest augmenting paths in one phase.
Send flow while optimizing total cost, which turns assignment and constrained transport models into graph problems.
These are still intentionally shown as planned or outline topics rather than shallow filler. The branch should feel incomplete in honest places instead of fake-complete everywhere.
Raw files are still available here when you want the original TeX, C++, or statement assets.