Structured Practice
Practice by topic. Not by rating.
Codeforces problems organized into granular subtopics — BFS, DFS, multi-source BFS, Dijkstra, Bellman-Ford, bitmask DP, monotonic stack, and more. Each subtopic ramps from easy → medium → hard.
- Categories
- 25
- Subtopics
- 99
- Problems
- 359+
Implementation & Ad-Hoc
Straight-forward coding, simulations, and careful reading of problem statements.
Mathematics & Number Theory
Divisibility, primes, GCD/LCM, modular arithmetic, sieve techniques, and Euler's totient.
Sorting & Searching
Sorting-based reasoning, binary search on arrays, and binary search on the answer.
Prefix Sums & Difference Arrays
Range sum queries, range updates, 2D prefix sums, and XOR prefix.
Two Pointers & Sliding Window
Linear-time scanning with two converging or co-moving pointers.
Greedy Algorithms
Make locally optimal choices that lead to a globally optimal solution.
Bit Manipulation
XOR tricks, bitmask enumeration, bitwise operations, and subset iteration.
Combinatorics & Counting
Counting, permutations, combinations, inclusion-exclusion, and constructive algorithms.
Recursion & Backtracking
Generate solutions by exploring all possibilities, prune when invalid.
String Algorithms
Hashing, KMP, Z-function, tries, suffix structures, and string matching.
Stacks, Queues & Deques
Monotonic stacks, monotonic deques, bracket matching, and expression parsing.
Disjoint Set Union (DSU)
Union-Find: track connected components with union by rank + path compression.
Dynamic Programming — Fundamentals
Core DP patterns: linear, 2D grid, knapsack, LIS, and LCS.
Dynamic Programming — Advanced
Bitmask DP, digit DP, interval DP, tree DP, probability DP, and DP optimizations.
Segment Trees & Fenwick Trees
Point update + range query, lazy propagation, and BIT variants.
Sparse Table, Sqrt Decomposition & More
Sparse table for static RMQ, sqrt decomposition, and Mo's algorithm.
Trees
Rooted trees, tree DFS, subtree queries, LCA, diameter, Euler tour, and heavy-light decomposition.
Graph Traversal
BFS, DFS, connected components, multi-source BFS, 0-1 BFS, and bipartite checking.
Graph Algorithms
Cycle detection, topological sort, bridges, articulation points, and strongly connected components.
Shortest Paths
Dijkstra, Bellman-Ford, Floyd-Warshall — weighted shortest path algorithms.
Minimum Spanning Tree
Kruskal's and Prim's algorithms for minimum spanning trees.
Network Flow & Matching
Max flow / min cut, bipartite matching, and min cost max flow.
Game Theory
Nim, Sprague-Grundy theorem, minimax, and game-state analysis.
Computational Geometry
Convex hull, line sweep, point-in-polygon, and geometric primitives.
Matrix Exponentiation & FFT
Matrix power for linear recurrences and FFT/NTT for polynomial multiplication.
Frequently Asked Questions
Where do the practice problems come from?
Do I need a Codeforces account?
How should I use the practice section?
How many problems are available?
Want the theory behind these topics?
Every topic above is covered in detail in our free book and study library. Learn the concepts first, then practice them here.