BUILD INTUITION. CODE WITH CONFIDENCE.
Small steps.
Big solutions.
From programming fundamentals to advanced algorithms.
Explore data structures, graphs, dynamic programming, strings, mathematics, and more—with practical C++ lessons.
224guided lessons
C++17practical code
10curriculum folders
ALGORITHMS, FROM EVERY ANGLE 10 / ∞
learn · visualize · codeC++17
YOUR LEARNING PATH
Build intuition. Then build solutions.
0 / 224 complete
01Introduction to Competitive Programming25 min○02C++ Basics and Program Structure25 min○03Data Types and Operators25 min○04Conditional Statements25 min○05Loops and Iteration25 min○06Functions and Parameter Passing25 min○07Arrays and Vectors25 min○08Strings and Characters25 min○09Pairs, Tuples, and Structs25 min○10Standard Template Library (STL) Essentials25 min○11Time Complexity and Big O Notation25 min○12Space Complexity and Memory Usage25 min○13Recursion Fundamentals25 min○14Backtracking Fundamentals35 min○15Brute Force and Complete Search25 min○16Introduction to Sorting30 min○17Bubble Sort, Selection Sort, and Insertion Sort35 min○18Merge Sort30 min○19Quick Sort35 min○20Counting Sort and Radix Sort40 min○21Linear Search and Binary Search35 min○22Binary Search on the Answer35 min○23Prefix Sums35 min○24Difference Arrays30 min○25Two Pointers30 min○26Sliding Window35 min○27Frequency Counting and Counting Arrays25 min○28Coordinate Compression25 min○29Bitwise Operations and Bitmasks35 min○30Fast Input/Output and Competitive Programming Templates25 min○
01Graph fundamentals10 min○02Breadth-first search20 min○03Depth-first search20 min○04Components & path reconstruction20 min○05Bipartite graphs20 min○06Topological sorting25 min○07Dijkstra’s algorithm30 min○080–1 BFS25 min○09Bellman–Ford & negative cycles30 min○10Floyd–Warshall25 min○11Disjoint set union25 min○12Minimum spanning tree30 min○13Bridges & articulation points40 min○14Lowest common ancestor40 min○15Strongly connected components35 min○16Euler trails35 min○17Maximum flow45 min○
01Introduction to Trees24 min○02Rooted Trees and Tree Representation28 min○03Tree Traversals (DFS and BFS)30 min○04Subtree Sizes28 min○05Tree Diameter32 min○06Tree Centers and Centroids38 min○07Lowest Common Ancestor (Basic Method)30 min○08Binary Lifting40 min○09Euler Tour of a Tree35 min○10Tree Dynamic Programming45 min○11Rerooting DP45 min○12Heavy-Light Decomposition (HLD)65 min○13Centroid Decomposition60 min○14Tree Isomorphism55 min○15Virtual Trees70 min○
01Arrays and Vectors35 min○02Stacks30 min○03Queues35 min○04Deques40 min○05Linked Lists40 min○06Sets and Maps40 min○07Priority Queues and Binary Heaps40 min○08Disjoint Set Union (DSU)40 min○09Monotonic Stacks50 min○10Monotonic Queues40 min○11Fenwick Tree (Binary Indexed Tree)35 min○12Segment Tree40 min○13Lazy Propagation45 min○14Sparse Table30 min○15Trie (Prefix Tree)35 min○16Order Statistic Trees45 min○17Persistent Segment Trees50 min○18Implicit Treaps55 min○
01Introduction to Dynamic Programming30 min○02Memoization (Top-Down DP)30 min○03Tabulation (Bottom-Up DP)30 min○04One-Dimensional DP30 min○05Two-Dimensional DP30 min○06Reconstructing DP Solutions30 min○070/1 Knapsack45 min○08Unbounded Knapsack45 min○09Subset Sum45 min○10Coin Change — Minimum Coins45 min○11Coin Change — Counting Ways45 min○12Longest Increasing Subsequence (LIS)45 min○13Longest Common Subsequence (LCS)45 min○14Edit Distance (Levenshtein Distance)45 min○15Grid Dynamic Programming45 min○16Maximum Subarray Sum (Kadane's Algorithm)45 min○17State Compression and Space Optimization45 min○18Interval Dynamic Programming45 min○19Partition Dynamic Programming45 min○20Bitmask Dynamic Programming45 min○21Digit Dynamic Programming45 min○22Dynamic Programming on DAGs45 min○23Tree Dynamic Programming45 min○24Rerooting Dynamic Programming45 min○25DP with Monotonic Queues60 min○26DP with Convex Hull Trick60 min○27Divide and Conquer DP Optimization60 min○28Knuth Optimization60 min○29Profile DP and Broken Profile DP60 min○30Probability and Expected Value DP60 min○
01Introduction to Greedy Algorithms30 min○02Proving Greedy Algorithms Correct30 min○03Greedy Algorithms with Sorting30 min○04Greedy Algorithms with Two Pointers30 min○05Greedy Algorithms with Frequency Counting30 min○06Activity Selection Problem40 min○07Interval Scheduling and Interval Merging40 min○08Minimum Number of Meeting Rooms40 min○09Interval Covering40 min○10Job Sequencing with Deadlines40 min○11Scheduling to Minimize Maximum Lateness40 min○12Fractional Knapsack40 min○13Coin Change — Greedy Approach40 min○14Minimum Number of Refueling Stops40 min○15Optimal Merge Pattern40 min○16Huffman Coding40 min○17Greedy String Construction40 min○18Greedy with Priority Queues40 min○19Greedy with Sets and Ordered Maps40 min○20Greedy with Disjoint Set Union40 min○21Greedy and Minimum Spanning Trees40 min○22Greedy with Monotonic Stacks55 min○23Greedy and Binary Search55 min○24Greedy Algorithms on Trees55 min○25Advanced Greedy Correctness and Matroids55 min○
01Introduction to String Algorithms25 min○02Naive String Matching28 min○03Prefix Function (π Array)36 min○04Knuth–Morris–Pratt (KMP) Algorithm38 min○05Z-Function (Z-Algorithm)38 min○06Rabin–Karp Algorithm45 min○07Polynomial Rolling Hash50 min○08Trie (Prefix Tree)35 min○09Aho–Corasick Algorithm65 min○10Manacher's Algorithm60 min○11Suffix Array45 min○12Longest Common Prefix (LCP) Array45 min○13Suffix Automaton60 min○14Palindromic Tree (Eertree)55 min○15String Dynamic Programming55 min○
01Divisibility and Number Theory Basics35 min○02Greatest Common Divisor (GCD)35 min○03Least Common Multiple (LCM)35 min○04Extended Euclidean Algorithm35 min○05Prime Numbers and Primality Testing35 min○06Sieve of Eratosthenes35 min○07Prime Factorization35 min○08Divisors and Divisor Functions35 min○09Coprime Numbers and Euler's Totient Function35 min○10Linear Diophantine Equations45 min○11Modular Arithmetic Fundamentals35 min○12Binary Exponentiation35 min○13Modular Multiplicative Inverse35 min○14Fermat's Little Theorem and Euler's Theorem40 min○15Chinese Remainder Theorem (CRT)45 min○16Modular Combinatorics40 min○17Permutations and Factorials35 min○18Combinations and Binomial Coefficients35 min○19Inclusion–Exclusion Principle40 min○20Pigeonhole Principle35 min○21Catalan Numbers40 min○22Stars and Bars35 min○23Probability Fundamentals35 min○24Expected Value and Linearity of Expectation35 min○25Basic Game Theory and Nim40 min○26Matrix Multiplication40 min○27Matrix Exponentiation45 min○28Fast Doubling for Fibonacci40 min○29Gaussian Elimination50 min○30Fast Fourier Transform (FFT)60 min○
01Introduction to Computational Geometry30 min○02Points and Vectors30 min○03Dot Product30 min○04Cross Product and Orientation30 min○05Distance Between Points, Lines, and Segments30 min○06Lines and Their Equations30 min○07Line Segment Intersection30 min○08Polygon Representation and Properties45 min○09Polygon Area — Shoelace Formula45 min○10Point in Polygon45 min○11Convex Polygons45 min○12Convex Hull — Graham Scan45 min○13Convex Hull — Andrew's Monotone Chain45 min○14Rotating Calipers45 min○15Circle Geometry Fundamentals45 min○16Circle-Circle Intersection45 min○17Minimum Enclosing Circle45 min○18Geometric Transformations45 min○19Closest Pair of Points — Divide and Conquer60 min○20Sweep Line Algorithm — Fundamentals60 min○21Sweep Line for Orthogonal Segment Intersections60 min○22Rectangle Union Area60 min○23Half-Plane Intersection60 min○24Minkowski Sum of Convex Polygons60 min○25Pick's Theorem and Lattice Geometry60 min○
01Introduction to Network Flow30 min○02Ford–Fulkerson Algorithm40 min○03Edmonds–Karp Algorithm40 min○04Dinic's Algorithm45 min○05Maximum Flow–Minimum Cut Theorem40 min○06Bipartite Matching40 min○07Hopcroft–Karp Algorithm45 min○08Hungarian Algorithm50 min○09Minimum-Cost Maximum Flow55 min○102-SAT and Implication Graphs40 min○11Shortest Paths with States40 min○12Meet in the Middle40 min○13Bitmask Dynamic Programming45 min○14Strongly Connected Components — Tarjan's Algorithm45 min○15Mo's Algorithm40 min○16Square Root Decomposition35 min○17Parallel Binary Search45 min○18Divide and Conquer Optimization for DP50 min○19Convex Hull Trick50 min○20Li Chao Segment Tree50 min○
KEEP THIS CHEAT SHEET CLOSE
Which Graph Algorithm Fits?
Choose a graph algorithm by the required result and the edge conditions in your problem.
| Your problem | Your starting point | Key condition |
|---|---|---|
| Reachability / connected components | DFS or BFS | Unweighted traversal |
| Shortest path by number of edges | BFS | Equal edge costs |
| Shortest weighted route | Dijkstra | Nonnegative weights |
| Shortest path with 0/1 costs | 0–1 BFS | Weights only 0 and 1 |
| Negative edge weights | Bellman–Ford | Check reachable negative cycles |
| Connect everything cheaply | Kruskal + DSU | Undirected weighted graph |
| Order prerequisites | Topological sort | Directed acyclic graph |
| Tree ancestor queries | Binary lifting / LCA | Rooted tree |