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.
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.