In-Depth Competitive Programming Learning Path

A comprehensive roadmap to conquer advanced topics in competitive programming and Olympiads.

Back to Roadmap
Phase Main Topic Content Goal
1 Introduction & Basic Techniques
  • Input/Output & Data Types
  • Prefix Sums, Difference Arrays
  • Greedy Techniques
  • Recursion & Backtracking
Master foundational programming concepts and techniques.
2 Sorting & Binary Search
  • Sorting Algorithms
  • Binary Search
  • Binary Search the Answer
  • Two Pointers / Sliding Window
Master efficient searching and sorting techniques.
3 Dynamic Programming (Part 1)
  • Longest Increasing Subsequence (LIS)
  • Knapsack Problem
  • Longest Common Subsequence (LCS)
  • Grid DP
Build a foundational understanding of dynamic programming with classic problems.
4 Basic Data Structures
  • Stack & Queue
  • Fenwick Tree (BIT)
  • Segment Tree
  • Lazy Propagation
Proficiently use efficient data structures for query-based problems.
5 Graph Algorithms (Part 1)
  • Graph Representation
  • DFS & BFS
  • Dijkstra's Algorithm
  • Bellman-Ford & Floyd-Warshall
Master basic graph traversal and shortest path algorithms.
6 Dynamic Programming (Part 2)
  • Tree DP
  • Bitmask DP
  • Probability DP
  • DP Optimization
Extend and apply DP to more complex problem types.
7 Graph Algorithms (Part 2)
  • Minimum Spanning Tree (MST)
  • Topological Sort
  • Strongly Connected Components (SCC)
  • Lowest Common Ancestor (LCA)
Understand and apply advanced graph algorithms.
8 Number Theory & Combinatorics
  • Sieve of Eratosthenes
  • Modular Arithmetic & Fast Exponentiation
  • Extended Euclidean Algorithm
  • Combinatorics & Inclusion-Exclusion
Solve problems related to mathematics and combinatorics.
9 String Processing
  • String Hashing
  • KMP Algorithm
  • Trie (Prefix Tree)
  • Z Algorithm
Master efficient string processing and matching algorithms.
10 Advanced Data Structures
  • Disjoint Set Union (DSU)
  • Sparse Table
  • SQRT Decomposition
  • Persistent Segment Tree
Utilize complex data structures to optimize algorithms.
11 Computational Geometry
  • Basic Vector Operations
  • Convex Hull
  • Line Sweep
  • Closest Pair of Points
Solve problems related to geometry and coordinates.
12 Olympiad Topics
  • Max Flow
  • Fast Fourier Transform (FFT)
  • Game Theory
  • Suffix Array
Conquer difficult and rare topics found in major competitions.

Core Mindsets for Elite Competitive Programmers

1. Algorithmic Intuition Over Memorization

Focus on why an algorithm works, its invariants, and its complexity proof. True mastery comes from adapting core ideas to new problems, not just reciting code.

2. The Art of Observation & Simplification

Hard problems are often simple problems in disguise. Practice identifying the crucial observation, simplifying constraints, or reducing the problem to a known structure.

3. Embrace Mathematical Rigor

Advanced competitive programming is applied mathematics. Develop comfort with proofs, number theory, combinatorics, and other formalisms. Don't shy away from the math.

4. Deliberate Practice & Weakness Targeting

Progress comes from systematically identifying your weakest topics and practicing them until they become strengths. Quality of practice beats quantity.