usaco.org/index.php?page=viewproblem2&cpid=…, cpids 939–950).
Round metadata
| Contest | USACO 2019 US Open (season finals) |
|---|---|
| Window | Late March / early April 2019, 4-day window with a single 5-hour personal timer |
| Length per division | 5 hours (US Open is the long round; Dec/Jan/Feb are 4 hours) |
| 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. |
| Significance | Last chance to promote into Platinum before US camp / IOI selection; Platinum scores here weigh into finalist invitations. |
The contest at a glance
Bronze · 3 problems
1. Bucket Brigade — shortest path on a fixed 10×10 grid from lake L to barn B avoiding rocks; BFS.
2. Milk Factory — given N−1 directed edges on an N-node tree-shape, find the smallest node reachable from all others; O(N²) reachability.
3. Cow Evolution — decide if N feature sets admit a "proper" evolutionary tree (each feature evolves once); check no two features pairwise-conflict.
Silver · 3 problems
1. Left Out — N×N grid of L/R, flip whole rows/columns to align all but one cow; find the lone cow (parity argument on row/col flips).
2. Cow Steeplechase II — find a segment whose removal makes all other segments non-intersecting; sweep line with a multiset.
3. Fence Planning — smallest axis-aligned bounding box perimeter of any connected component; DSU + per-component min/max.
Gold · 3 problems
1. Snakes — partition N groups in order into K+1 contiguous segments minimizing Σ(maxₛₑ𝓰 − group); O(N²K) interval DP.
2. I Would Walk 500 Miles — partition N cows into K groups to maximize the min inter-group "distance" with a hash formula; binary search + Kruskal.
3. Balancing Inversions — min adjacent swaps so left half and right half of a 0/1 array have equal inversions; two-pointer + BIT.
Platinum · 3 problems
1. Tree Boxes — assign 2D coordinates to a tree so any path is covered by ≤2 axis-aligned boxes; interactive heavy-path embedding.
2. Compound Escape — count MSTs of an N×K grid graph with K≤6; matroid contraction DP, mod 109+7.
3. Valleys — sum of sizes of all non-holey "valley" regions in an N×N height grid; offline DSU + Euler-tour-on-complement to detect holes.
How to use this set
- Pick your division. Open the full division page and read all three statements before writing any code — 5 hours rewards a calm reading sweep first.
- Order the attack. US Open P1 is usually the cheapest problem; P3 is almost always the hardest. Solve in order unless P2 obviously matches a pattern you already know.
- Time-box. 5 hours total. Don't sink more than ~2 hours into a single problem without at least the easiest subtask banked.
- Compare to the reference C++. Each problem on the division page has a 30–80 line reference. If yours is much longer, ask why.
- Verify with the editorial. Official editorials are linked from each problem page on usaco.org.