C++ & Complexity Foundations
Write, run, and put a price on small C++ programs before any data structure appears
Get fluent enough with C++ and Big-O that every later problem is about the idea, not the syntax.
146 study units ยท flexible pace
A 146-unit C++ path from local beginner exercises to advanced DSA and competitive-programming practice. Preserve the Striver A2Z topic coverage, then extend into number theory, range queries, advanced graphs and DP. Learn through guided attempts, delayed recall, unlabelled transfer problems and an early contest routine. Generate lectures in batches of three and study each unit across as many sessions as needed. The 584 hours are a first-pass estimate; strong contest performance requires continuing practice, not a guaranteed rating.
Guided attempts, spaced recall, practice banks, and quizzes
The contest-simulation capstone
Recall, trace, then check
C++ & complexity, STL, recursion, sorting, and binary search
Write, run, and put a price on small C++ programs before any data structure appears
Get fluent enough with C++ and Big-O that every later problem is about the idea, not the syntax.
Become fluent with the containers and algorithms you will reuse for the entire course
Turn the standard library into muscle memory and build the reflex of translating a statement into clean code.
An unshakable grip on recursion over numbers, arrays and strings
Make recursion second nature so every later tree, graph and DP topic stands on solid ground.
Implement the classic sorts, understand invariants, and use custom comparators fluently
Know how sorting really works and wield sorting as a preprocessing weapon.
Halving the search space, and the far more powerful binary-search-on-the-answer
Master exact search and, crucially, recognizing the monotonic predicate that unlocks answer-search.
Arrays, strings, sliding window, linked lists, backtracking, bits, stacks/queues, and heaps
A deep bag of array techniques: prefix sums, two pointers, Kadane, intervals, matrix moves
Build the bread-and-butter array toolkit every contest and interview leans on.
Comfortable string manipulation and the medium classics (heavy algorithms come later)
Handle strings fluently and solve the standard medium problems before advanced string algorithms.
The window / two-pointer engine that solves a huge class of subarray and substring problems in O(n)
Master the grow-shrink window and know exactly when it applies versus prefix sums.
Full command of singly and doubly lists and the pointer-manipulation classics
Own the node-and-pointer model: slow/fast, reversal, cycle detection, and list arithmetic.
Turn recursion into a problem-solving engine: subsets, permutations, combinations, grid puzzles
Wield the choose / explore / un-choose template on every enumeration and constraint problem.
Think in bits: masks, tricks, and the subset / XOR problems that appear constantly
Get comfortable enough with bits that masks and XOR tricks become a first instinct.
Implement them, master expression evaluation, and the monotonic-stack pattern
Discover the stack from a bracket problem, then wield monotonic stacks on the next-greater family.
The binary heap and priority_queue for top-K, scheduling and streaming-median problems
Understand the heap well enough to reach for it instantly on top-K and streaming problems.
Greedy, binary trees, BST, tries, graphs, and dynamic programming
Recognize when local choices are globally optimal, and prove it
Build the instinct to spot a greedy structure and back it with an exchange argument.
Total command of tree traversals and the medium/hard tree problems
Make tree recursion automatic, the foundation for BST, tries, and tree DP.
Use the BST ordering property for fast search/insert/delete and the classic problems
Exploit the left<node<right invariant, and know when to just use std::set/map.
The prefix-tree structure for fast string-prefix queries and bitwise-XOR problems
See how sharing prefixes in a tree turns repeated prefix work into O(length) queries.
Representations, BFS/DFS, toposort, shortest paths, MST and DSU, in a clean dependency order
The biggest phase: build every core graph algorithm on top of the traversals, ending with DSU.
From recursion + memo to tabulation to space optimization across every major DP pattern
The crown jewel: learn to define state, transition and base case for each DP family fast.
Advanced strings, number theory, segment trees, advanced graphs/DP, and competitive programming
Linear-time string matching and structure: KMP, Z, hashing, Manacher
Cross from O(nm) brute matching into O(n) algorithms and the problems built on them.
The math toolkit for CP: sieve, modular arithmetic, inverses, combinatorics, matrix exponentiation
Acquire the arithmetic that gates a huge fraction of Codeforces problems above 1400.
Range-query power tools: Fenwick, segment trees (+ lazy), sparse tables, Mo's
Add the structures that answer range queries and updates in log time, plus when to use each.
The graph theory that separates strong CP: SCC, bridges, LCA, flows, matching
Build the high-end graph algorithms on top of the DFS tree and low-link machinery.
The DP that wins contests: bitmask, digit, tree rerooting, SOS, and optimizations
Layer the advanced DP families on top of the core, and recognize each from its constraints.
Turn technique into rating: constructive, game theory, interactive, and a real contest routine
Build a sustainable contest and upsolving routine; distinguish CodeChef stars from Codeforces titles and measure progress without promising a rating.