IOI — Competitive Programming

Keep the fundamentals ready to recall.

Ready-made practice for the IOI. Build recall one short session at a time — no decks to build before you begin.

964 cards·14 decks·Yours for life
or go All-Access →

Flashcards are a memory tool. Learn the material first, then use NoReread to retain it and refresh what you already know. It doesn't replace studying the subject.

Cards are created from publicly available sources and may contain errors. Check anything you rely on against your official materials.

What's inside

Explore the curriculum, one focused deck at a time.

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.

Keep the IOI material fresh.

Start free and study a few minutes a day. $7.99 once, and these 964 cards are yours for life.

or go All-Access →

Competitive-programming algorithm flashcards — 964 cards in 14 decks, following the IOI syllabus and going beyond it: mathematics, data structures, dynamic programming, graphs, strings, geometry, number theory, combinatorics, linear algebra & FFT, advanced graphs/flows, advanced geometry, and game theory. Built from publicly available sources such as the IOI Syllabus 2025.