Concepts204

⚙️AlgorithmIntermediate

Knapsack Problems

Knapsack problems ask how to pick items under a weight (or cost) limit to maximize value or to check if a target sum is reachable.

#0/1 knapsack#unbounded knapsack#bounded knapsack+12
⚙️AlgorithmIntermediate

Coin Change and Variants

Coin Change uses dynamic programming to find either the minimum number of coins to reach a target or the number of ways to reach it.

#coin change#dynamic programming#unbounded knapsack+12
⚙️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
MathIntermediate

Linear Basis for XOR

A linear basis for XOR is a compact set of at most W numbers (W = number of bits) that can generate every XOR value obtainable from a multiset of numbers.

#xor basis#linear basis#gaussian elimination f2+12
MathIntermediate

Matrix Rank and Linear Independence

Matrix rank is the number of pivots after Gaussian elimination and equals the dimension of both the column space and the row space.

#matrix rank#linear independence#gaussian elimination+12
⚙️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
⚙️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
⚙️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