The topics below are not exhaustive for this division.
Contest problems may contain topics not covered in the guide, or topics listed under different divisions!
Most Gold and Platinum contests have at least one DP problem.
Introduction to DP
Speeding up naive recursive solutions with memoization.
Updated: Last week
Problems that can be modeled as filling a limited-size container with items.
Paths on Grids
Counting the number of "special" paths on a grid, and how some string problems can be solved using grids.
Longest Increasing Subsequence
Has Not Appeared
Finding and using the longest increasing subsequence of an array.
DP problems that require iterating over subsets.
Solving a DP problem on every contiguous subarray of the original array.
Finding the number of integers in a range that have a property.
Most Silver to Platinum contests have at least one graph problem.
Shortest Paths with Unweighted Edges
Introduces how BFS can be used to find shortest paths in unweighted graphs.
Disjoint Set Union
The Disjoint Set Union (DSU) data structure, which allows you to add edges to a graph and test whether two vertices of the graph are connected.
Ordering the vertices of a directed acyclic graph such that each vertex is visited before its children.
Shortest Paths with Non-Negative Edge Weights
Bellman-Ford, Floyd-Warshall, and Dijkstra.
Minimum Spanning Trees
Finding a subset of the edges of a connected, undirected, edge-weighted graph that connects all the vertices to each other of minimum total weight.
Congratulations on making it this far!