Competitive Programming Topics Checklist (A to
Z)
Programming Language Basics (C++)
[] Fast I/O (cin/cout vs scanf/printf)
[] STL Basics: vector, pair, set, map, unordered_map, priority_queue, stack, queue, deque
[] Sorting (sort(), custom comparator, stable_sort)
[] String handling (substr, find, stoi, stringstream)
[] Bitwise operators (& , | , ^ , ~ , << , >>)
Basic Math
[] GCD, LCM (Euclidean algorithm)
[] Prime Numbers, Sieve of Eratosthenes
[] Modular Arithmetic (add, mul, fast power, modular inverse)
[] Divisors, Factorization
[] Fibonacci (Matrix Expo, Fast Doubling)
[] Combinatorics (nCr, nPr, Pascal’s Triangle, Factorials with mod)
Basic Data Structures
[] Arrays, Strings
[] Linked List
[] Stack, Queue, Deque
[] Hashing (frequency count, hash map/set)
[] Sliding Window / Two Pointers
[] Prefix Sum, Difference Array
[] Binary Search (lower_bound, upper_bound)
Sorting & Searching
[] Basic sorting: Selection, Bubble, Insertion
[] Merge Sort, Quick Sort
[] Counting Sort, Radix Sort
[] Binary Search (on answer problems)
[] Ternary Search
Greedy Algorithms
[] Activity Selection
[] Interval Scheduling
[] Minimum Coins / Change-making
[] Huffman Encoding
[] Greedy Graph problems (like Kruskal MST)
Recursion & Backtracking
[] Factorial, Fibonacci recursion
[] N-Queens Problem
[] Rat in a Maze / Sudoku Solver
[] Subset / Subsequence generation
[] Permutation generation
Graph Theory
[] Graph Representation (Adjacency List/Matrix)
[] BFS, DFS
[] Topological Sort (Kahn’s algo, DFS)
[] Minimum Spanning Tree (Kruskal, Prim)
[] Shortest Path (Dijkstra, Bellman-Ford, Floyd-Warshall)
[] Bipartite Graph, Cycle Detection
[] DSU (Disjoint Set Union / Union-Find)
[] Bridges & Articulation Points
[] Euler Tour, Hamiltonian Path
[] Flow Algorithms (Ford-Fulkerson, Edmonds-Karp, Dinic)
Dynamic Programming (DP)
[] Fibonacci, Coin Change, Knapsack (0/1, Unbounded)
[] Subset Sum, Partition
[] Longest Increasing Subsequence (LIS)
[] Longest Common Subsequence (LCS)
[] Matrix Chain Multiplication
[] DP on Grids
[] DP on Trees
[] Bitmask DP
[] Digit DP
[] Game Theory (Grundy Numbers)
Advanced Data Structures
[] Binary Indexed Tree (Fenwick Tree)
[] Segment Tree (Point Update, Range Query)
[] Lazy Propagation
[] Sparse Table
[] Treap, Splay Tree
[] Trie
[] Suffix Array, Suffix Tree, Z-algorithm, KMP
Advanced Topics
[] Geometry (orientation, convex hull, line sweep)
[] Matrix Exponentiation
[] Heavy-Light Decomposition (HLD)
[] Lowest Common Ancestor (LCA)
[] Mo’s Algorithm
[] Centroid Decomposition
[] Persistent Segment Tree
[] Fast Fourier Transform (FFT)
Contest Strategy
[] Brute Force first → then optimize
[] Reading constraints carefully
[] Solving by difficulty (A → B → C → … in contests)
[] Debugging fast
[] Virtual contests & upsolving