Curriculum

Course I

  • Preliminaries
    • Complexity Analysis (Christian)
    • Language Tutorials
      • C++ (Nouhad + Glenn)
      • Java (Arup + Christian)
      • Python (Ben)
    • Online Resources (Christian)
    • Teamwork (Simanta)
  • Bits (Ben)
  • Prefix Sum (Arup + Christian)
  • Greedy (Lucas + Suhas)
  • Bruteforce (Arup)
  • Math (Lucas + Suhas + Christian + Arup)
  • Graphs (Arup + Christian + Lucas + Suhas + Simanta)
  • Binary and Ternary Searches (Christian + John)
  • Dynamic Programming (Christian + Etienne + Glenn)
  • Geometry (David)
  • Sorting (Ben)

Course II

  • 2-SAT (Bob)
  • Angle Sweep + Convex Hull (Etienne)
  • Articulation Points/Bridges (Dante)
  • Chinese Remainder Theorem (Chalam + John)
  • Disjoint Set Union (Bob)
  • Dynamic Programming: 2D (Etienne)
  • Dynamic Programming: Bitmask/TSP (Ben)
  • Euler Tour + LCA (Christian)
  • Fenwick Tree + Segment Tree (Christian + Jim)
  • Geometric Transformation (Jerzy)
  • Hashing (Simanta)
  • Linear Algebra (Christian)
  • Matrix Exponentiation (Christian)
  • Modular Arithmetic (Christian)
  • Network Flow (Christian)
  • Number Kinds (Christian)
  • SCC + BCC (Chalam)
  • Square Root Decomposition (Christian + Dante)

Course III

  • Aho-Corasick (Ben)
  • Centroid Decomposition (Christian)
  • DP Optimization (Christian)
  • Dynamic Programming: Tree (Etienne + Glenn)
  • DFT/NTT + GF (Christian)
  • Game Theory – Sprague Grundy (Christian)
  • Gaussian Elimination (Lucas + Suhas)
  • Half-Plane Intersection (Christian)
  • Heavy-Light Decomposition (Suhas + Lucas + Christian)
  • KMP (Christian)
  • Manacher’s (Christian)
  • Markov Chain (Lucas + Suhas)
  • MCMF (Christian)
  • Mo’s Algorithm (Christian + Dante)
  • Mobius Inversion (Christian)
  • Parallel Binary Search (Christian)
  • Rabin-Karp (Christian)
  • Sparse Table (Christian)
  • Suffix Array (Christian)

Course IV

  • Alien Trick (Christian)
  • Link-Cut Tree (Christian)
  • Lyndon Factorization (Christian)
  • Matching (Bob + Christian)
  • Minkowski Sum (Christian)
  • Suffix Automaton (Christian)
  • Suffix Tree (Christian)
  • Treap (Christian)
  • Z-function (Ben)

In Progress

  • Divide and Conquer (Ryan)
  • String (Ryan)
  • Knapsack (Simanta)
  • Bellman-Ford (Tolga)
  • Disjoint Set Union (Bob)
  • Floyd-Warshall (Tolga)
  • Kuhn (Bob)
  • Linearity of Expectation (Tolga)
  • Longest Increasing Subsequence (Tolga)
  • Parametric Search (Christian)
  • Pigeonhole Principle (Chalam)

Slides are available upon request. Please direct any inquiries to christian.lim@icpc.global.