usaco.org/index.php?page=viewproblem2&cpid=…, cpids 1155–1166).
Round metadata
| Contest | USACO 2021 December |
|---|---|
| Window | Roughly Dec 17–20, 2021 (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, C++11, C++17, Java, Python 2.7, Python 3.6 (C++17 is the default for 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. Lonely Photo — count length-≥3 substrings of G/H with exactly one minority breed (sliding runs).
2. Air Cownditioning — adjust per-stall temperature deltas via interval ± operations; difference-array sweep.
3. Walking Home — grid paths from top-left to bottom-right with at most K direction changes (DP).
Silver · 3 problems
1. Closest Cow Wins — Bessie picks K positions on a number line to maximize cows whose nearest patch is hers (greedy on gaps).
2. Connecting Two Barns — connect components containing nodes 1 and N at minimum cost c(a−b)² (two-pointer on sorted components).
3. Convoluted Intervals — for every s, count pairs (i,j) with ai+aj = s and bi+bj ≥ s (bucket convolution).
Gold · 3 problems
1. Paired Up — pair up cows with weights in [1,M] to maximize total weight of paired cows (DP on weights).
2. HILO — for a random permutation of guesses, count HI→LO + LO→HI transitions in expectation (combinatorial).
3. Bracelet Crossings — given pairwise crossing relations of N closed curves on a plane, decide a realization exists (recursive nesting check).
Platinum · 3 problems
1. Tickets — multi-source shortest path on a graph where each "ticket" connects an interval of nodes to a target; segment-tree to source.
2. Paired Up — Platinum version with intervals of weights and up to 1018 cows (segment tree + DP).
3. HILO — Platinum version: for each prefix of a permutation, output expected transitions; treaps / order statistics.
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.