ICPC Playbook¶
Track Snapshot¶
ICPC-style contests reward breadth, switching speed, and team process.
The canonical model is:
3 contestants1 workstation- about
5 hours - ranked by
problems solved, thenleast total time
At the World Finals and many regionals, one shared machine and limited or no external access are part of the real constraint, not a side detail. That is why this playbook is mostly about triage, handoff, notebook retrieval, and bailout rules rather than only new algorithms.
Who This Is For¶
Use this page if:
- you already know the basics of graph, DP, and data-structure topics
- you want a stable team workflow instead of improvising every contest
- your main misses come from bad prioritization, slow switching, or buggy handoffs
Do not use this page as your first exposure to contest programming.
Go back first if:
- syntax and local testing still feel slow
- you cannot solve solo banker problems cleanly
- your notebook/template retrieval is still chaotic
What To Optimize¶
The highest-payoff ICPC skills are:
opening triageone-machine team workflowfast recognition across many topicsdebugging without everyone staring at the same screenlate-contest bailout and revive discipline
The right question is usually not "who can solve the hardest problem?"
It is:
- which solve is safest right now
- what should occupy the shared machine
- what should the two non-typing teammates do this minute
Repo Route¶
| Layer | Best doors | Why |
|---|---|---|
| Topics | Shortest Paths, BFS And DFS, Trees, Flow, Matching | ICPC breadth is mostly graph/data-structure retrieval under pressure |
| Ladders | Contest Engineering ladder, Graphs ladders, Data Structures ladders | build repeatable solve order and cleaner implementation habits |
| Mixed rounds | Contest Core Switching 01, ICPC Breadth And Implementation 01, Graphs And DP Switching 01 | closest current repo drills to ICPC-style switching, banker ordering, and one-machine execution pressure |
| Anchor notes | Message Route, Road Reparation, Police Chase, QBFLOWER | good recognition anchors for common contest-core families |
| Notebook | Contest Checklist, Graph cheatsheet, Data structures cheatsheet | retrieval layer for the first 10-20 minutes of a bug or modeling stall |
| Workflow | Local Judge Workflow, Stress Testing Workflow | best recovery loop when one attempted solve is close but unstable |
| Templates | Template Library, contest-main.cpp, fast-io.cpp |
small, rehearsed kit beats a giant kitchen sink |
Training Rhythm¶
A strong weekly ICPC rhythm usually looks like:
- one
mixed roundor archive-style team session - one
topic reinforcementsession on the weakest family from that round - one
retrievalsession where the goal is notebook/template speed, not new theory - one short
post-mortemwhere the team logs triage, handoff, and debugging mistakes
If you are training solo for ICPC, keep the same structure but simulate roles:
- first pass as triager
- second pass as typist
- final pass as reviewer/debugger
Before A Contest¶
Default checklist:
- rehearse the opening
20-minutetriage on one recent set - verify that your notebook and template kit are instantly retrievable
- agree on default roles:
- primary typist / integrator
- primary triager / modeler
- primary verifier / debugger
- reopen one short refresher page per likely weak area
- do one clean banker warm-up, not a hard puzzle
The goal before ICPC is not to feel clever. It is to remove avoidable friction.
Exact Drill Doors¶
- Start here: ICPC Modeling Under Pressure 01
- Then reinforce with: ICPC Triage Drill 01 and Handoff Drill
- Escalate to: ICPC Breadth And Implementation 01
Treat the modeling drill as the canonical first executable session. The triage and handoff drills are supporting micro-drills inside this playbook, and the mixed round is the broader follow-up session.
Opening Triage Board¶
Use one shared board in the first pass instead of letting triage stay verbal.
| Problem | banker / medium / investment | owner | machine priority | bailout minute | next route if parked |
|---|---|---|---|---|---|
A |
high / medium / low |
||||
B |
high / medium / low |
||||
C |
high / medium / low |
Fill it fast. The goal is not perfect prediction. The goal is to stop the team from improvising machine usage problem by problem.
ICPC Triage Drill 01¶
Run this on one recent contest set or one curated five-problem block.
- Spend
15-20 minutesreading and tagging the set only. - Fill the triage board above before anyone writes real contest code.
- Commit the workstation to the safest first solve.
- At minute
25, ask whether the board still matches reality or whether one tag should change. - After the session, log one triage miss and one machine-usage win.
This drill is good when your team often says “we knew the solve, but we started the wrong thing first.”
During A Contest¶
Opening 20 Minutes¶
Good default:
- two people read the set from opposite ends
- one person prepares environment and notes likely banker problems
- tag each problem as:
bankermediuminvestment- commit the machine to the safest first solve, not the most exciting one
Handoff Rule¶
Before a teammate gives a problem to the typist, they should be able to say:
- the invariant or core idea
- expected complexity
- two or three edge cases
- whether the main risk is modeling, implementation, or proof
If that summary is not clean yet, the handoff is early.
Handoff Drill¶
Force every handoff through one short summary card:
| idea | complexity | edge cases | current risk | exact next coding step |
|---|---|---|---|---|
If the card cannot be filled in one or two minutes, the handoff is probably still too early.
Bailout Rule¶
Use default bailout rules unless you have a specific reason not to:
- if
15-20minutes pass with no clean invariant, park the problem - if code exists but the bug is not localized after about
10focused minutes, hand the machine back - if a banker solve is available, the banker gets machine priority
- only revive a parked problem when you have genuinely new information
Debugging Rule¶
When one solve is close:
- one teammate reads the statement
- one reads the code
- one proposes the smallest failing case or complexity explanation
Do not let all three people tunnel on random edits.
Late Contest / Freeze¶
In the last 60-90 minutes:
- prefer one more realistic solve over polishing a tie-break fantasy
- maintain your own internal board if public accepted notifications freeze
- revive old WA/TLE attempts only if the failure mode is now concrete
After A Contest¶
Every missed or late problem should be tagged with exactly one primary failure:
unreadmis-triagedmodeled but not codedcoded but buggybad bailoutbad handoffnotebook retrieval miss
Then choose one follow-up action:
- return to a topic page
- solve one ladder problem in that family
- add one notebook/template improvement
- build one new mixed-round slot
If a post-contest note ends with five vague lessons, it is too weak.
Common Failure Modes¶
- letting one hard problem monopolize the machine too early
- having no default handoff protocol
- carrying a huge notebook that no one can navigate quickly
- debugging only by editing code instead of shrinking the failing case
- confusing "interesting" with "high-ROI" in the first hour
Failure -> Next Repo Door¶
| Failure | Reopen |
|---|---|
mis-triage or weak first 20 minutes |
ICPC Modeling Under Pressure 01, ICPC Breadth And Implementation 01, and this page's triage drill |
| bad handoff or unclear ownership | Contest Engineering |
| close solve died in debugging | Build Kit, Local Judge Workflow |
| standard graph/data-structure family was not recognized | Ladders or the missed family's corresponding graph/data-structure ladder |
Progress Markers¶
You are using the ICPC playbook well when:
- your team can explain a stable opening protocol without debate
- at least one mixed-round pack feels like retrieval practice, not first exposure
- your misses are increasingly about hard modeling, not bad machine usage
- post-contest review produces one concrete process fix per contest
Move back to topic ladders if:
- most misses are still recognition misses
- you repeatedly fail on standard graph or data-structure families
- your notebook is masking missing fundamentals
References And Repo Anchors¶
Research sweep refreshed on 2026-04-24.
Official / primary:
Reference / essay:
Repo anchors: