AIO Algorithms Australian Informatics Olympiad · Algorithms
Australian Informatics Olympiad · Algorithms

AIO Algorithms — The Techniques the Contest Rewards

Thirty lessons on the algorithmic techniques that decide AIO scores — sorting, greedy, prefix sums, two pointers, binary search, recursion, dynamic programming and graph basics. Each lesson pairs a clear method with worked examples and hands-on practice drawn from real Australian Informatics Olympiad problems.

AIO pathway: Python Foundation → Algorithms → Olympiad practice.

Algorithmic Techniques

  • Lesson 1: Reading & Framing — the 7 problem parts · constraints · the 6-step method
  • Lesson 2: Complexity & the Speed Wall — Big-O · the constraint → complexity table
  • Lesson 3: Complete Search — pairs · triples · subsets — generate, test, keep
  • Lesson 4: Complete Search in Action — spotting "try everything" in disguise
  • Lesson 5: Casework, Parity & Construction — hand-construct · parity arguments · observations
  • Lesson 6: Simulation & Ad-Hoc — state · direction vectors · grids · boundaries
  • Lesson 7: Simulation & Rectangle Geometry — clean sims + bounding boxes & overlap
  • Lesson 8: Simulation, Combined — cycles · closed forms · multi-object overlap
  • Lesson 9: Sorting, Stacks & Queues — sorted() · custom keys · LIFO/FIFO · brackets
  • Lesson 10: Sorting, Counting & Sets — dict frequency · set membership · sort-then-scan
  • Lesson 11: Counting, Mod-Groups & Number Tools — frequency · remainders · gcd · prime sieve
  • Lesson 12: Greedy Algorithms — local best · the coin trap · exchange arguments
  • Lesson 13: Greedy in Action — signal words · the right sort key · decoys
  • Lesson 14: Greedy, Combined — derived keys · two pointers · sweep line
  • Lesson 15: Prefix Sums — build once · range sum = one subtraction
  • Lesson 16: Prefix Sums in Action — range · balance · running-total signals
  • Lesson 17: Prefix Sums, Combined — prefix+dict · difference arrays · prefix+suffix
  • Lesson 18: Two Pointers & Sliding Windows — fixed/variable windows · opposite ends · O(N)
  • Lesson 19: Two Pointers in Action — naming the window shape from the wording
  • Lesson 20: Two Pointers, Combined — window+dict · counting subarrays · merging
  • Lesson 21: Binary Search — find a target · the [F,F,T,T] boundary template
  • Lesson 22: Binary Search on the Answer — optimisation → decision → fast check(x)
  • Lesson 23: Binary Search, Combined — greedy/counting checks · the Medusa pattern
  • Lesson 24: Flood Fill & BFS — DFS regions · BFS for fewest steps
  • Lesson 25: Flood Fill in Action — count/size · perimeter · multi-source BFS
  • Lesson 26: Graphs, Combined — adjacency lists · 2-colouring · components
  • Lesson 27: Recursion → Dynamic Programming — the table · stairs · robber · coin change
  • Lesson 28: 1D DP in Action — Kadane · stock · longest subsequence
  • Lesson 29: 2D & Grid DP — grid paths · min-path-sum · largest square
  • Lesson 30: Choosing the Technique & Mixed Mock — the 60-second decision + an exam across all families
Need the Python basics first?
If syntax still slows you down, the 20-lesson Python Foundation course gets you fluent in output, input, loops and functions before you tackle algorithms.
Open Python Foundation →
Competition guide: New to the AIO? AIO 2026 dates & preparation guide →

Pick a lesson from the Lessons list.

Lessons open in this frame with the platform navigation around them.