usaco.org/index.php?page=viewproblem2&cpid=…).
Round metadata
| Contest | USACO 2023 December |
|---|---|
| Window | Roughly Dec 15–18, 2023 (4-day window, single 4-hour personal timer) |
| Length per division | 4 hours (Dec/Jan/Feb format; US Open is the 5-hour round) |
| Problems per division | 3 |
| Total problems | 12 (Bronze 1–3, Silver 1–3, Gold 1–3, Platinum 1–3) |
| Scoring | IOI-style partial credit, 1000 points per problem, 3000 max per division |
| Allowed languages | C++17, Java, Python 3 (C++ is the default for almost all serious climbers) |
| Promotion cutoffs | Set per-contest by USACO; check the results page for exact thresholds. |
The contest at a glance
Bronze · 3 problems
1. Candy Cane Feast — N cows in line eat hanging candy canes; track each cow's growing height.
2. Cowntact Tracing 2 — min initial infected cows in a line that could produce the observed pattern after some nights.
3. Farmer John Actually Farms — N plants grow linearly; find earliest day a target ranking is realized.
Silver · 3 problems
1. Bovine Acrobatics — stack cows in ≤ M towers with weight-gap rule, maximize cows used (greedy + counts).
2. Cycle Correspondence — two cyclic labelings of K barns; max barns matching both (rotate / reflect, count fixed points).
3. Target Practice — robot vine executes L/R/F string; max targets hit if you can change at most one command.
Gold · 3 problems
1. Flight Routes — recover direct flights from pairwise parities of multi-hop route counts (GF(2) inversion).
2. Minimum Longest Trip — DAG longest path with lex-minimum label sequence per source (reverse-topo DP).
3. Haybale Distribution — pick delivery point minimising weighted asymmetric L1 cost per query (sorted prefix sums).
Platinum · 3 problems
1. Cowntact Tracing — on a tree, min initial infected to match observed state after k nights, for Q query values of k.
2. A Graph Problem — Prim-like edge concatenation hash from every starting vertex; reuse via Boruvka-style DSU.
3. Train Scheduling — schedule N trains on a one-track line A↔B, minimize total delay (convex DP / queue exchange).
How to use this set
- Pick your division. Open the full division page and read the three statements before writing any code.
- Solve P1 first, P2 if time, P3 only if you're cruising. December problem 1s are usually the cheapest points.
- Time-box. 4 hours total. Don't spend more than ~90 minutes on a single problem without a working subtask submission.
- Compare to the reference C++. Each problem on the division page has a ~30–50 line reference solution. If yours is much longer, ask why.
- Verify with the editorial. Official editorials are linked from each problem page on usaco.org.