# 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 week

Knapsack DP

Not Frequent

Problems that can be modeled as filling a limited-size container with items.

Paths on Grids

Not Frequent

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.

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.

Digit DP

Rare

Finding the number of integers in a range that have a property.

## 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.

Topological Sort

Rare

Ordering the vertices of a directed acyclic graph such that each vertex is visited before its children.

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.

## Data Structures

## Trees

## Additional Topics

Rarely required.

## Conclusion

Congratulations on making it this far!