Getting Started | Time Complexity Introduction to Data Structures Simulation Rectangle Geometry |
Complete Search | Basics of Complete Search Complete Search with Recursion |
Sorting & Sets | Introduction to Sorting (Optional) Introduction to Sets & Maps |
Additional | Ad Hoc Problems Introduction to Greedy Algorithms Introduction to Graphs |
Prefix Sums | Introduction to Prefix Sums More on Prefix Sums |
Sorting & Searching | Custom Comparators and Coordinate Compression Two Pointers More Operations on Sorted Sets (Optional) C++ Sets with Custom Comparators Greedy Algorithms with Sorting Binary Search |
Graphs | Graph Traversal Flood Fill Introduction to Tree Algorithms Introduction to Functional Graphs (DAGs – Directed Acyclic Graphs with exactly one outgoing edge) |
Additional Topics | Introduction to Bitwise Operators |
Math | Divisibility Modular Arithmetic Combinatorics |
Dynamic Programming (DP) | Introduction to DP Knapsack DP Paths on Grids Longest Increasing Subsequence Bitmask DP Range DP Digit DP |
Graphs | Shortest Paths with Unweighted Edges Disjoint Set Union Topological Sort Shortest Paths with Non-Negative Edge Weights Minimum Spanning Trees |
Data Structures | Stacks Sliding Window Point Update Range Sum |
Trees | Euler Tour Technique DP on Trees – Introduction DP on Trees – Solving For All Roots |
Additional Topics | String Hashing Hashmaps Meet in The Middle |
Range Queries | Introduction to Segment/Fenwick Tree More Applications of Segment Tree Range Queries with Sweep Line Range Update Range Query Sparse Segment Trees 2D Range Queries Divide & Conquer – SRQ Square Root Decomposition |
Trees | Binary Jumping Small to Large Margin Heavy-Light Decomposition Centroid Decomposition |
Geometry | Geometry Primitives Swee Line Convex Hull Convex Hull Trick |
Miscellaneous | Matrix Exponentiation Bitsets Divide & Conquer – DP Minimum Spanning Trees |