usaco.org/index.php?page=viewproblem2&cpid=…, cpids 963–974).
Round metadata
| Contest | USACO 2019 December |
|---|---|
| Window | 4-day window in mid-December 2019, 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 |
| Promotion cutoffs | Set per-contest by USACO; check the results page for exact thresholds. |
The contest at a glance
Bronze · 3 problems
1. Cow Gymnastics — count pairs of cows whose relative order is the same in every session (N² · K check).
2. Where Am I? — smallest window length such that every length-K substring of a color string is unique.
3. Livestock Lineup — find lexicographically smallest order of 8 cows satisfying adjacency constraints (brute permutation).
Silver · 3 problems
1. MooBuzz — Nth integer not divisible by 3 or 5 (closed form on period 15).
2. Meetings — cows on a line walking and bouncing; compute when total weight on the right end reaches half (sort + suffix count + sort-by-T trick).
3. Milk Visits — tree with H/G nodes; for each query (a, b, c) decide if path a–b contains type c (small-to-large or DSU offline).
Gold · 3 problems
1. Milk Pumping — enumerate the minimum edge capacity, run Dijkstra ignoring weaker edges, maximize cap / cost (M·Dijkstra).
2. Milk Visits — general graph version of Silver Milk Visits with arbitrary per-node milk types (small-to-large / offline DSU).
3. Moortal Cowmbat — change a string of 26 letters in length-≥K runs to minimize edit cost (DP + prefix mins, all-pairs shortest paths on letters).
Platinum · 3 problems
1. Greedy Pie Eaters — interval DP: best total weight when cows eat ranges of pies (O(N³)).
2. Bessie's Snow Cow — color subtree operations with set-of-intervals on Euler tour; sum-of-colors queries with Fenwick.
3. Tree Depth — sum of depths of position k over all permutations with K inversions (generating functions / DP with rolling window).
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.