Gold
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!
Modules Progress
Problems Progress
Math
Dynamic Programming
Most Gold and Platinum contests have at least one DP problem.
Introduction to DP
Very Frequent
Speeding up naive recursive solutions with memoization.
Updated: Last month
Knapsack DP
Not Frequent
Problems that can be modeled as filling a limited-size container with items.
Updated: Last month
Paths on Grids
Not Frequent
Counting the number of "special" paths on a grid, and how some string problems can be solved using grids.
Updated: Last month
Longest Increasing Subsequence
Has Not Appeared
Finding and using the longest increasing subsequence of an array.
Updated: Last month
Bitmask DP
Not Frequent
DP problems that require iterating over subsets.
Range DP
Rare
Solving a DP problem on every contiguous subarray of the original array.
Updated: Last month
Digit DP
Rare
Finding the number of integers in a range that have a property.
Updated: Last month
Graphs
Most Silver to Platinum contests have at least one graph problem.
Shortest Paths with Unweighted Edges
Not Frequent
Introduces how BFS can be used to find shortest paths in unweighted graphs.
Disjoint Set Union
Somewhat Frequent
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.
Updated: Last month
Topological Sort
Rare
Ordering the vertices of a directed acyclic graph such that each vertex is visited before its children.
Updated: Last month
Shortest Paths with Non-Negative Edge Weights
Not Frequent
Bellman-Ford, Floyd-Warshall, and Dijkstra.
Minimum Spanning Trees
Not Frequent
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.
Updated: Last month
Data Structures
Stacks
Rare
A data structure that only allows insertion and deletion at one end.
Updated: Last month
Sliding Window
Not Frequent
Maintaining data over consecutive subarrays.
Updated: Last month
Point Update Range Sum
Somewhat Frequent
Segment Tree, Binary Indexed Tree, and Order Statistic Tree (in C++).
Updated: Last month
Trees
Euler Tour Technique
Not Frequent
Flattening a tree into an array to easily query and update subtrees.
Updated: Last month
DP on Trees - Introduction
Not Frequent
Using subtrees as subproblems.
Updated: Last month
DP on Trees - Solving For All Roots
Rare
Tree DP problems involving rerooting.
Updated: Last month
Additional Topics
Rarely required.
Hashing
Rare
Quickly testing equality of substrings or sets with a small probability of failure.
Updated: Last month
(Optional) Hashmaps
Rare
Maintaining collections of distinct elements with hashing.
Updated: Last month
Meet In The Middle
Rare
Problems involving dividing the search space into two.
Updated: Last month
Conclusion
Congratulations on making it this far!