Concepts146

⚙️AlgorithmIntermediate

Maximum Flow - Ford-Fulkerson

Ford–Fulkerson finds the maximum possible flow from a source to a sink by repeatedly pushing flow along an augmenting path in the residual graph.

#maximum flow#ford-fulkerson#edmonds-karp+10
⚙️AlgorithmAdvanced

Biconnected Components

A biconnected component (block) is a maximal subgraph where removing any single vertex keeps it connected.

#biconnected components#blocks#articulation points+12
⚙️AlgorithmAdvanced

Virtual Tree (Auxiliary Tree)

A Virtual Tree (Auxiliary Tree) compresses a large tree into a much smaller tree that contains only the k important nodes and the LCAs needed to keep them connected.

#virtual tree#auxiliary tree#lca+12
⚙️AlgorithmIntermediate

LCA - Binary Lifting

Binary lifting precomputes 2^k ancestors for every node so we can jump upward in powers of two.

#lca#binary lifting#tree+12
⚙️AlgorithmIntermediate

Strongly Connected Components

Strongly Connected Components (SCCs) partition a directed graph into maximal groups where every vertex can reach every other vertex in the group.

#strongly connected components#tarjan#kosaraju+12
⚙️AlgorithmIntermediate

Bridge Tree

A bridge tree is built by contracting every 2-edge-connected component of an undirected graph into a single node, leaving only bridges as edges between nodes.

#bridge tree#2-edge-connected components#bridges+12
⚙️AlgorithmIntermediate

Tree Distances and Diameter

Tree diameter is the longest simple path in a tree and can be found with two BFS/DFS runs.

#tree diameter#tree center#eccentricity+12
⚙️AlgorithmIntermediate

Tarjan's SCC Algorithm

Tarjan’s algorithm finds all Strongly Connected Components (SCCs) of a directed graph in a single depth-first search using a stack.

#tarjan scc#strongly connected components#low link+12
⚙️AlgorithmIntermediate

Bridges and Articulation Points

A bridge is an edge whose removal increases the number of connected components; an articulation point is a vertex with the same property.

#bridges#articulation points#cut vertex+12
⚙️AlgorithmIntermediate

SPFA (Shortest Path Faster Algorithm)

SPFA is a queue-based optimization of Bellman–Ford that only relaxes edges from vertices whose distance just improved.

#spfa#bellman-ford#shortest path+12
⚙️AlgorithmIntermediate

Lowest Common Ancestor (LCA)

The Lowest Common Ancestor (LCA) of two nodes in a rooted tree is the deepest node that is an ancestor of both.

#lowest common ancestor#binary lifting#euler tour+12
⚙️AlgorithmIntermediate

MST Properties and Applications

An MST minimizes total edge weight over all spanning trees and has powerful properties such as the cut and cycle properties that guide correct, greedy construction.

#minimum spanning tree#kruskal#prim+12