IOI — Competitive Programming
Olympiad-grade algorithms: 14 decks from DP to flows to geometry.
Comprehensive competitive-programming algorithms, built on the IOI syllabus and extended: mathematics, data structures, dynamic programming, graphs, strings, geometry, number theory, combinatorics, linear algebra & FFT, advanced graphs/flows, advanced geometry, and game theory.
14 decks·964 cards·Spaced repetition · 5 study formats · lifetime access
What's inside
1Advanced Computational Geometry49 cards · Deep computational geometry for olympiad problems: half-plane intersection, convex polygon queries, Minkowski sums, rotating calipers, smallest enclosing circle, circle algorithms, KD-trees, Voronoi/Delaunay, point location, segment-intersection sweep, polygon triangulation, Pick's theorem, polygon centroid, 3D geometry, and exact arithmetic. Assumes vector/cross-product/convex-hull basics.2Advanced Graph Algorithms, Flows & Matching63 cards · Deep network flow (Dinic, blocking flows, scaling, unit-capacity bounds), min-cost max-flow (SPFA and Johnson potentials + Dijkstra), max-flow min-cut theorem and applications (König vertex cover, maximum independent set, project selection / maximum closure, Menger edge/vertex-disjoint paths), bipartite matching (König, Hall, Hopcroft-Karp), general matching (Edmonds' blossom), global min cut (Stoer-Wagner), Gomory-Hu tree, 2-SAT, SCC condensation, bridges/articulation/biconnected components, Eulerian paths (Hierholzer) and Chinese postman, DAG path cover and longest path, tree isomorphism hashing, dominator tree, LCA (Tarjan offline, Euler + sparse table), and small-to-large merging.3General Algorithmic Techniques & Analysis79 cards · Core IOI algorithmic toolkit: asymptotic and amortized analysis, recursion and recurrences, complete search and backtracking, divide and conquer, greedy methods, binary/ternary search, two pointers and sliding window, prefix sums and difference arrays, sorting, meet in the middle, bit manipulation, randomization, and invariant-based correctness reasoning. Emphasis on complexity and applicability.4Combinatorics & Counting66 cards · Counting techniques for competitive programming: permutations and combinations, binomial coefficients and identities, multinomial coefficients, stars and bars, inclusion-exclusion, pigeonhole, Catalan and Stirling numbers, Bell numbers, integer partitions, generating functions, Burnside's lemma, Polya enumeration, lattice paths, linear-recurrence counting, and probability via counting.5Fundamental Data Structures78 cards · Core data structures for competitive programming: arrays, dynamic arrays, linked lists, stacks, queues, deques, monotonic stacks/queues, hash tables, binary heaps, sets and maps, strings, and bit manipulation, with emphasis on operation complexities.6Dynamic Programming81 cards · DP fundamentals, classic problems (knapsack, LIS, LCS, edit distance, MCM), grid/interval/tree/bitmask/digit DP, probability and counting DP, and standard optimizations.7Combinatorial Game Theory49 cards · Combinatorial games for competitive programming: N/P positions, Nim and the Nim-sum theorem, mex and Grundy values, the Sprague-Grundy theorem, sums of games, subtraction-game periodicity, Nim variants (staircase, Moore, Wythoff), Hackenbush and coin-turning concepts, and minimax with alpha-beta pruning.8Computational Geometry71 cards · Points, vectors, dot and cross products, orientation, segment intersection, polygons, convex hull, closest pair, sweep line, and exact-arithmetic precision for IOI-style geometry problems. Built on the cross-product foundation.9Graph Algorithms76 cards · IOI graph algorithms: terminology, representations, BFS/DFS, topological sort, shortest paths (Dijkstra, Bellman-Ford, Floyd-Warshall, SPFA), minimum spanning trees (Kruskal, Prim), connectivity (SCC, bridges, articulation points, 2-SAT), trees (diameter, LCA), network flow (Ford-Fulkerson, Dinic, min-cut, bipartite matching), and Eulerian paths, with complexities and when each applies.10Linear Algebra & FFT for Competitive Programming60 cards · Matrices and matrix exponentiation, linear recurrences, Gaussian elimination, rank and determinant, XOR linear basis, polynomials, DFT/FFT, NTT, convolution applications, and the Matrix-Tree theorem for the IOI.11Mathematics for Competitive Programming62 cards · Integer properties, modular arithmetic, GCD/LCM, primes and factorization, sums and series, probability basics, geometry vocabulary, and overflow awareness for the IOI.12Number Theory for Competitive Programming69 cards · Sieves, modular arithmetic and inverses, extended Euclid, CRT, Euler's totient and theorems, Mobius inversion, multiplicative functions, divisor functions, Miller-Rabin, Pollard's rho, Lucas' theorem, discrete logarithm, primitive roots, quadratic residues, and modular equations for the IOI.13String Algorithms79 cards · String algorithms for competitive programming: substrings, prefixes, suffixes, palindromes, periods and borders; naive matching, polynomial hashing (Rabin-Karp), KMP and the prefix function, the Z-algorithm, tries, Aho-Corasick, suffix arrays and LCP (Kasai), suffix automata/trees, Manacher's algorithm, longest common substring, lexicographic order, and the Burrows-Wheeler transform.14Trees & Range Data Structures82 cards · Advanced tree-based and range query data structures from the IOI syllabus: BSTs and balanced BSTs, Fenwick trees, segment trees (lazy, iterative), sparse tables, disjoint set union, treaps, heavy-light decomposition, Euler tours, LCA via binary lifting, Mo's algorithm, and sqrt decomposition. Emphasis on time/space complexity and when to use each.
964 cards. One program. $24.99.
Every card audited, built for active recall, and scheduled by SM-2 spaced repetition.