Count without omissions or duplicates, then prove why the count works. Begin at the first unfamiliar idea; the prerequisite links help you find a shorter route. You can open any lesson.

Unsure where to start? Try the starting-point check.

  1. C01

    Factorials

    Explain the empty arrangement and simplify only valid factorial expressions.

    Inside: Factorial notation and zero factorial · Cancelling factorial ratios

  2. C02

    Basic counting principles

    Define the counted object and choose disjoint cases or sequential choices.

    Inside: Sum and product rules · Systematic casework · Complements and avoiding duplicates

  3. C03

    Combinations and binomial coefficients

    Distinguish a selection from an arrangement and justify the overcount factor.

    Inside: Unordered selection · Pascal’s identity and symmetry · Restricted selection · Combinatorial identities

  4. C04

    Counting with bijections

    Prove a map is both one-to-one and onto.

    Inside: Constructing a reversible correspondence · Counting through an easier model

  5. C05

    Combinations with repetition

    Count repeated selections with clearly stated object and box types.

    Inside: Multisets · Stars and bars · Lower and upper bounds

  6. C06

    Permutations and arrangements

    Choose a representation that enforces the restriction without duplicate counting.

    Inside: Distinct arrangements · Repeated symbols · Blocks, gaps and restrictions · Lexicographic reasoning

  7. C07

    Circular permutations

    Specify which configurations count as identical before dividing.

    Inside: Rotations and a fixed reference · Reflections and necklace conventions

  8. C08

    Dividing objects into fixed-size groups

    Count partitions with correct group labels and size symmetries.

    Inside: Labelled groups · Unlabelled groups · Equal group sizes and symmetry

  9. C09

    Counting integer solutions

    Convert a constrained sum into a counting model with valid bounds.

    Inside: Nonnegative solutions · Positive and lower-bounded solutions · Upper bounds and cases

  10. C10

    Binomial expansions and generating functions

    Explain what each factor and exponent counts.

    Inside: Binomial coefficients as choices · Multinomial expansion · Generating functions as choice records · Coefficient extraction

  11. C11

    Counting with recurrences

    Derive a recurrence from a disjoint partition of objects.

    Inside: Conditioning on the last step · Tiling and string recurrences · Initial cases and verification

  12. C12

    Inclusion–exclusion

    Explain the alternating correction by tracking one object’s multiplicity.

    Inside: Two and three sets · General inclusion-exclusion · Restricted counts

  13. C13

    Derangements

    Count permutations that avoid every original position.

    Inside: No fixed points · Inclusion-exclusion derivation · Recurrence derivation

  14. C14

    Objects and boxes

    Choose the model from distinguishability and occupancy conditions.

    Inside: Objects and boxes: the four models · Nonempty boxes · Capacity restrictions

  15. C15

    Pigeonhole principle

    Define useful boxes and justify why a collision forces the conclusion.

    Inside: Basic pigeonhole · Generalised bounds · Choosing boxes · Remainder and geometry applications

  16. C16

    Invariants and colouring

    Find a property unchanged by every legal move, then use it to prove impossibility or compute a final value.

    Inside: Parity invariants · Colouring and tiling · Remainders · Shifted products · Reachability proofs

  17. C17

    The extremal principle

    Choose a smallest, largest or best object, justify its existence, and use it to prove a claim or a sharp bound.

    Inside: Largest and smallest choices · Equality propagation · Closest pairs · Optimal pairings · Extremal proofs

  18. C18

    Lattice paths and blocked routes

    Count restricted grid routes using checkpoints, blocked edges, disjoint cases and a last-step recurrence.

    Inside: Step words · Checkpoints · Blocked edges · Last-step tables · Reflection proofs

  19. C19

    Prefix sums and divisibility

    Find and count consecutive blocks using boundary sums, remainders, parity and the pigeonhole principle.

    Inside: Boundary sums · Remainder pairs · Block counting · Even lengths · Sharp bounds

  20. C20

    Double counting: pairs and incidence

    Count the same collection in two ways to solve membership, pairing and coloured-relationship problems.

    Inside: Pairs · Incidence · Shared memberships · Colourings · Sharp bounds

These original lessons introduce the methods and give practice with solutions. A single short session is not a full assessment of Olympiad readiness. Build depth through the written challenges and your country’s official past papers.