Concepts146

⚙️AlgorithmIntermediate

Dynamic Programming Fundamentals

Dynamic programming (DP) solves complex problems by breaking them into overlapping subproblems and using their optimal substructure.

#dynamic programming#memoization#tabulation+12
⚙️AlgorithmIntermediate

DP State Design

Dynamic Programming (DP) state design is the art of choosing what information to remember so that optimal substructure can be reused efficiently.

#dynamic programming#dp state#bitmask dp+11
⚙️AlgorithmIntermediate

Bipartite Matching - Hopcroft-Karp

Hopcroft–Karp computes maximum matching in a bipartite graph in O(E \sqrt{V}) time, which is asymptotically faster than repeated DFS (Kuhn's algorithm).

#hopcroft karp#bipartite matching#augmenting path+11
⚙️AlgorithmAdvanced

Block-Cut Tree

A Block-Cut Tree decomposes an undirected graph into biconnected components (blocks) and articulation points, forming a bipartite tree.

#block-cut tree#biconnected components#articulation points+11
⚙️AlgorithmAdvanced

Hungarian Algorithm

The Hungarian algorithm solves the square assignment problem (matching n workers to n jobs) in O(n^{3}) time using a clever potential (label) function on vertices.

#hungarian algorithm#assignment problem#bipartite matching+11
⚙️AlgorithmAdvanced

General Matching - Blossom Algorithm

Edmonds' Blossom Algorithm finds a maximum matching in any undirected graph, not just bipartite ones.

#blossom algorithm#edmonds matching#general graph matching+12
⚙️AlgorithmIntermediate

Bipartite Matching - Kuhn's Algorithm

Kuhn’s algorithm finds a maximum matching in a bipartite graph by repeatedly searching for augmenting paths using DFS.

#bipartite matching#kuhn algorithm#augmenting path+12
⚙️AlgorithmIntermediate

König's Theorem

König's Theorem states that in any bipartite graph, the size of a maximum matching equals the size of a minimum vertex cover.

#konig's theorem#bipartite matching#minimum vertex cover+12
⚙️AlgorithmIntermediate

Flow - Modeling Techniques

Many classic problems can be modeled as a maximum flow problem by building the right network and capacities.

#max flow#dinic#bipartite matching+12
⚙️AlgorithmAdvanced

Minimum Cost Maximum Flow

Minimum Cost Maximum Flow (MCMF) finds the maximum possible flow from a source to a sink while minimizing the total cost paid per unit of flow along edges.

#minimum cost maximum flow#successive shortest augmenting path#reduced cost+11
⚙️AlgorithmIntermediate

Min-Cut Max-Flow Theorem

The Max-Flow Min-Cut Theorem says the maximum amount you can push from source to sink equals the minimum total capacity you must cut to disconnect them.

#max flow#min cut#edmonds karp+12
⚙️AlgorithmIntermediate

Maximum Flow - Dinic's Algorithm

Dinic's algorithm computes maximum flow by repeatedly building a level graph with BFS and sending a blocking flow using DFS.

#dinic#maximum flow#blocking flow+11