2026 年 USACO竞赛 第二场比赛银奖组问题一—Cow-libi 2

Farmer John and Farmer Nhoj have taken their respective cows to sit around a campfire in hopes of settling their personal differences. In total, there are N
(2≤N≤105) cows sitting in a circular formation. When the farmers are ready to take their cows back to their farms, they realize one crucial mistake: since all the cows look the same and are mixed up, they are unable to identify which cows belong to which farmer!

Then the N cows are organized into one straight line to be interrogated by the two farmers. Because of the confusion, the order of the cows in the line, from 1
to N, might not correspond to their circular order around the campfire.

But the cows want to play a game. Instead of answering directly which farmer they belong to, they say which farmer the cows adjacent to them in the original circle belong to. Additionally, it is known that Farmer Nhoj's cows always lie but Farmer John raised his cows well and they will always tell the truth.

Given the statements of the cows, is it possible to assign each cow to either Farmer John or Farmer Nhoj such that the statements of the cows assigned to Farmer John are all true, and the statements of the cows assigned to Farmer Nhoj are all false?

INPUT FORMAT (input arrives from the terminal / stdin):

The first line contains T (1≤T≤1000), the number of independent test cases, and an integer C∈{0,1} (whether to output a construction or not).

The first line of each test case contains N.

The following line contains a string of length N containing characters J or N. The i'th character is J if cow i claims the cow to their left in the circle belongs to Farmer John, or Farmer Nhoj otherwise.

The following line contains a string of length N containing characters J or N. The i'th character is J if cow i claims the cow to their right in the circle belongs to Farmer John, or Farmer Nhoj otherwise.

It is guaranteed that the sum of N over all tests does not exceed 5⋅105.

OUTPUT FORMAT (print output to the terminal / stdout):

For each test case, output YES or NO.

Additionally, if C=1 and the answer is YES, output two more lines describing your construction:

The first line should contain a permutation p1,p2,…,pN of 1…N, representing the circular order of the cows around the campfire, where cow pi is to the left of cow pi+1 for i in 1…N−1, and cow pN is to the left of cow p1.

The second line should contain a string b1b2…bN consisting only of Js and Ns, meaning that cow pi belongs to Farmer John if bi is J, or Farmer Nhoj otherwise.

Any valid construction will be accepted.

SAMPLE INPUT:

6 0
3
JJJ
JJJ
4
JJNJ
NJJJ
6
NJNJNJ
JNNJNJ
4
NNNN
NNNN
3
NNN
NNN
5
JJNNJ
NJNJJ

SAMPLE OUTPUT:

YES
NO
NO
YES
NO
YES
SAMPLE INPUT:
6 1
3
JJJ
JJJ
4
JJNJ
NJJJ
6
NJNJNJ
JNNJNJ
4
NNNN
NNNN
3
NNN
NNN
5
JJNNJ
NJNJJ

SAMPLE OUTPUT:

YES
1 2 3
JJJ
NO
NO
YES
1 2 3 4
NJNJ
NO
YES
4 5 2 1 3
JJJJN

Consider the output for the sixth test case. Cows 1, 2, 4, 5 belong to Farmer John, and Cow 3 belongs to Farmer Nhoj.

The cows will then behave as follows:

Cow 1's left and right neighbours are Cow 2 and Cow 3, respectively. Cow 1 says that Cow 2 belongs to Farmer John, and Cow 3 belongs to Farmer Nhoj.

Cow 2's left and right neighbours are Cow 5 and Cow 1, respectively. Cow 2 says that both cows belong to Farmer John.

Cow 3's left and right neighbours are Cow 1 and Cow 4, respectively. Cow 3 (dishonestly) says that both cows belong to Farmer Nhoj.

Cow 4's left and right neighbours are Cow 3 and Cow 5, respectively. Cow 4 says that Cow 3 belongs to Farmer Nhoj, and Cow 5 belongs to Farmer John.

Cow 5's left and right neighbours are Cow 4 and Cow 2, respectively. Cow 5 says that both cows belong to Farmer John.

All these claims are consistent with the input.

SCORING:

Input 3: C=0 and N≤10
Input 4: C=1 and N≤10
Inputs 5-8: C=0
Inputs 9-12: C=1

Problem credits: Chongtian Ma

2026 年 USACO竞赛 第二场比赛金奖组问题三—The Chase

Bessie is trying to evade the farmers. The farmers own N (2≤N≤5⋅105) farms with a one way road between the i-th farm and the ai-th farm (1≤iN,  ai≠i). There are F (1≤FN) farmers and the i-th farmer is initially stationed at farm

si(1≤siN, all si unique). At each time step, every farmer takes the road at their current farm and moves to the next. Bessie gets caught if she is ever located at the same farm as any farmer.

Suppose Bessie starts at some farm b. At each time step, she has two options: she can either choose to rest (stay at her current farm) or take the road and move to the next farm. If she chooses to move, she moves simultaneously with the farmers. Bessie moves so that she is never caught by any farmer in a finite number of timesteps.

For each starting farm b (1≤bN), find the maximum number of times Bessie can choose the rest option if she starts at farm b.

INPUT FORMAT (input arrives from the terminal / stdin):

The first line contains N and F, the number of farms and the number of farmers.

The second line contains a1…aN, the one-way roads going out of each farm.

The third line contains s1sF, the starting locations of each farmer.

OUTPUT FORMAT (print output to the terminal / stdout):

Output N lines, the b-th of which must consist of a single integer denoting the maximum number of times Bessie can choose the rest option if she starts at farm b. If there is no way for Bessie to ensure she is never caught after a finite number of timesteps, then output −1. If Bessie can rest an infinite number of times, then output −2.

SAMPLE INPUT:

4 1
2 1 4 3
1

SAMPLE OUTPUT:

-1
0
-2
-2

Farm 1: If Bessie starts at a farm with a farmer, then she is caught immediately, and you should output −1.

Farm 2: Bessie must choose to move at every timestep to avoid being caught by the farmer who starts at farm 1.

Farms 3-4: Bessie can rest an infinite number of times without being caught.

SCORING:

Input 2: N≤50
Inputs 3-10: N≤2000
Inputs 11-20: No additional constraints.

Problem credits: Alex Liang

2026 年 USACO竞赛 第二场比赛金奖组问题二—Lexicographically Smallest Path

Bessie is given an undirected graph with N (1≤N≤2⋅105) vertices labeled 1…N and M edges (N−1≤M≤2⋅105). Each edge is described by two integers u,v(1≤u,vN) describing an undirected edge between nodes u and v and a lowercase Latin letter c in the range a..z that is the value on the edge. The graph given is guaranteed to be connected. There may be multiple edges or self-loops.

Define f(a,b) as the lexicographically smallest concatenation of edge values over all paths starting from node a and ending at node b. A path may contain the same edge more than once (i.e., cycles are allowed).

For each i (1≤iN), help Bessie determine the length of f (1,i). Output this length if it is finite, otherwise output −1.

INPUT FORMAT (input arrives from the terminal / stdin):

The first line contains T (1≤T≤10), the number of independent tests. Each test is specified in the following format:

The first line contains N and M.

The next M lines each contain two integers followed by a lowercase Latin character.

It is guaranteed that neither the sum of N nor the sum of M over all tests exceeds 4⋅105.

OUTPUT FORMAT (print output to the terminal / stdout):

For each test, output N space-separated integers on a new line.

SAMPLE INPUT:

2
1 0
2 2
1 1 a
2 1 b

SAMPLE OUTPUT:

0
0 -1

For the first test case, node 1 can be reached with an empty path, so the answer is 0. In the second test case, node 2 cannot have a lexicographically smallest path, since FJ can repeat the 'a' self-loop any number of times before moving to node 2, producing arbitrarily long strings that are still lexicographically minimal. Therefore, the answer for node 2 is -1.

SAMPLE INPUT:

2
7 7
1 2 a
1 3 a
2 4 b
3 5 a
5 6 a
6 7 a
7 4 a
4 3
1 2 z
2 3 x
3 4 y

SAMPLE OUTPUT:

0 1 1 5 2 3 4
0 1 2 -1

For the first test case, node 1 has distance 0. Nodes 2 and 3 are adjacent with node 1, and they have distance 1. For nodes 4, 5, 6, and 7, it can be proven that the lexicographically shortest path does not pass through the edge between node 2 and 4.

For the second test case, node 4 again has no lexicographically smallest path, since the string can be extended indefinitely while remaining lexicographically minimal. Thus, its answer is -1.

SCORING:

Inputs 3-4: Every character is a.
Inputs 5-8: Every character is a or b.
Inputs 9-14: N,M≤5000
Inputs 15-22: No additional constraints.

Problem credits: Daniel Zhu and Yash Belani

2026 年 USACO竞赛 第二场比赛金奖组问题一—Balancing the Barns

Farmer John has N (1≤N≤5⋅104) barns arranged along a road. The i-th barn contains ai bales of hay and bi bags of feed (0≤ai ,bi ≤109).

Bessie has been complaining about the inequality between barns. She defines the "imbalance" of the farm as the difference between the maximum hay in any barn and the minimum feed in any barn. Formally, the imbalance is max(a)−min(b).

To address Bessie's concerns, Farmer John can perform exactly K (1≤K≤1018 ) transfers. In each transfer, he selects a barn i, sells one of its haybales, and buys it a new bag of feed for the same barn. Note that there can be negative amounts in his farm (he is not afraid of debt). Formally, K times, you choose an index i∈[1,N], decrement ai, and increment bi .

Help Farmer John determine the minimum possible imbalance after performing exactly K transfers.

INPUT FORMAT (input arrives from the terminal / stdin):

The first line contains T (1≤T≤103), the number of independent test cases.

The first line of each test case contains Nand K.

The following line contains a1…aN.

The following line contains b1…bN.

The sum of N over all test cases is at most 5⋅104 .

OUTPUT FORMAT (print output to the terminal / stdout):

For each test case, output a single integer, the minimum possible value of max(a−min(b) after performing K operations.

SAMPLE INPUT:

4
1 10
5
3
2 6
100 96
0 4
3 3
1 1 2
0 0 1
3 3
1 2 2
0 1 1

SAMPLE OUTPUT:

-18
90
0
0

In the first test case, Farmer John can transfer 10 haybales from barn 1 into bags of feed. This leaves a=[−5] and b=[13]. The imbalance is max(a−min(b)=−5−13=−18.

In the second test case, Farmer john can transfer 5 haybales from barn 1 and 1 haybale from barn 2. This leaves a=[95,95] and b=[5,5]. The imbalance is 95−5=90. This is the minimum imbalance Farmer John can achieve.

SCORING:

Inputs 2-4: K≤500, sum of N over all testcases is ≤500
Inputs 5-8: Sum of N over all testcases is ≤500
Inputs 9-13: No additional constraints.

Problem credits: Rohin Garg

2026 年 USACO竞赛 第二场比赛白金组问题三—Dynamic Instability

Farmer Nhoj has trapped Bessie on a rooted tree with N (2≤N≤2⋅105) nodes, where node 1 is the root. Scared and alone, Bessie makes the following move each second:

If Bessie's current node has no children, then she will move to a random ancestor of the current node (excluding the node itself).

Otherwise, Bessie will move to a random child of the current node.

Initially, Bessie is at node x, and her only way out is the exit located at node y (1≤x,yN). For Q (1≤Q≤2⋅105) independent queries of x and y, compute the expected number of seconds it would take Bessie to reach node y for the first time if she started at node x, modulo 109+7.

INPUT FORMAT (input arrives from the terminal / stdin):

The first line contains N and Q.

The next line contains N−1 integers p2,…pN describing the tree (1≤pi<i). For each 2≤iN, there is an edge between nodes i and pi.

Each of the next Q lines contains integers x and y representing the nodes for that query.

OUTPUT FORMAT (print output to the terminal / stdout):

For each query, output the expected number of seconds for Bessie to reach node y for the first time starting at node x, modulo 109+7.

SAMPLE INPUT:

5 5
1 2 2 1
1 1
2 1
3 1
4 1
5 1

SAMPLE OUTPUT:

0
4
3
3
1

In the 1st query, the expected time to reach node 1 from itself is 0.

In the 3rd query, after 1 second, Bessie will be at node 1 with probability 12 and at node 2 with probability 12. Since the expected time to reach node 1 from node 2 is 4, the expected time for Bessie to reach node 1 starting at node 3 is 1+12⋅0+12⋅4=3.

SAMPLE INPUT:

5 5
1 2 2 1
1 1
1 2
1 3
1 4
1 5

SAMPLE OUTPUT:

0
3
500000011
500000011
6

In the 3rd query, the expected time to reach node 3 from node 1 is 152.

SAMPLE INPUT:

13 10
1 2 2 4 3 1 5 6 4 7 8 10
1 12
10 6
5 12
1 13
13 10
6 4
7 12
3 1
12 8
2 1

SAMPLE OUTPUT:

166666700
21
2
166666701
500000023
18
166666704
750000018
800000021
500000018

SCORING:

Inputs 4-8: For all queries, y=1.
Inputs 9-13: For all queries, x=1.
Inputs 14-18: For each 2≤iN, pi is uniformly randomly chosen from the range [1,i−1].

Inputs 19-23: No additional constraints.

Problem credits: Avnith Vijayram

2026 年 USACO竞赛 第二场比赛白金组问题二— Cow Circle

**Note: The time limit for this problem is 6s, thrice the default. The memory limit for this problem is 512MB, twice the default.**

Farmer John has N(1≤N≤5000) cows standing around a circular track divided into M(1≤M≤106) equally spaced positions, numbered 0 to M−1 clockwise. Cow i is initially at position xi , where 0=x1<x2<⋯<xN<M.

For each 1≤iN, cow i will independently and randomly choose either to face clockwise or counterclockwise with some probability specific to that cow. Once a cow has chosen her initial direction, she begins moving continuously in that direction at a constant speed of one position per minute. Whenever two cows meet (i.e., they occupy the same space), they bounce off of each other: immediately reversing their directions and continuing to move at the same speed in that direction.

Farmer John is wondering where cow 1 will end up. For each 0≤i<M, find the probability that cow 1 is at position i after K (1≤K≤1018) minutes.

INPUT FORMAT (input arrives from the terminal / stdin):

The first line contains T (1≤T≤100), the number of independent test cases. Each test case is specified as follows:

The first line of each test case contains N(1≤N≤5000), M(1≤M≤106), and K(1≤K≤1018 ).

The second line contains N integers p1,…,pN (0≤pi<109+7) where if ai/bi is the probability cow i goes clockwise, then pibiai(mod109+7).

The third and final line contains N integers x1,x2,…,xN.

It is guaranteed that the sum of N2 over all test cases is ≤50002 and the sum of M over all testcases is ≤106.

OUTPUT FORMAT (print output to the terminal / stdout):

Output a new line for each test case. The line for each test case should be formatted as follows:

For every 0≤i<M, let pi/qi be the probability cow 1 is in position i at the end of K
minutes. Output M space-separated integers piqi-1 (mod 109+7)

(where piqi-1≡pi(mod 109+7)).

SAMPLE INPUT:

3
2 2 1
500000004 500000004
0 1
3 3 1
500000004 500000004 500000004
0 1 2
5 10 13
500000004 1 500000004 0 500000004
0 3 4 7 9

SAMPLE OUTPUT:

500000004 500000004
500000004 250000002 250000002
0 0 0 125000001 375000003 0 125000001 375000003 0 0

For the first test case, both cows have a 1/2 chance of going in either direction. If both pick the same direction, they will end up swapping positions (so cow 1 ends up at 1). Otherwise, they will bounce off in the middle and return to their original positions. Therefore, there is a 12 chance for cow 1 to end up at 0 and a 12 chance for cow 1 to end up at 1.

For the second test case, all cows again have a 12 chance of going in either direction. For each combination of directions, here is where cow 1 ends up at.

CW, CW, CW: 1
CW, CW, CCW: 1
CCW, CCW, CCW: 2
CCW, CW, CCW: 2
CW, CCW, CW: 0
CW, CCW, CCW: 0
CCW, CW, CW: 0
CCW, CCW, CW: 0

SCORING:

Input 2: K≤100,N≤10.
Input 3: N≤10.
Inputs 4-7: ∑N3≤5003.
Inputs 8-11: K<M/2.
Inputs 12-15: No additional constraints.

Problem credits: Sujay Konda

2026 年 USACO竞赛 第二场比赛白金组问题一—Circle of Cows

Farmer John has N (2≤N≤1000) cows at distinct locations l1,…,lN along a circle of circumference C (0≤l1<l2<⋯<lN<C,N≤C≤109).

FJ will select k pairs of cows, where 1≤k≤⌊N/2⌋, and no cow is selected more than once. He wants to select the pairs such that the minimum distance between any two cows in the same pair along the circumference of the circle is maximized.

For each value of k, help FJ determine the maximum possible minimum distance.

INPUT FORMAT (input arrives from the terminal / stdin):

The first line contains N and C.

The second line contains l1lN .

OUTPUT FORMAT (print output to the terminal / stdout):

Output a single line with ⌊N/2⌋space-separated integers, with the answers for k=1…⌊N/2⌋in that order.

SAMPLE INPUT:

4 100
0 25 50 75

SAMPLE OUTPUT:

50 50

For k=1, cow 1 can be paired to cow 3, which is distance 50 away along the circumference of the circle, making the answer 50.

For k=2, cow 1 can be paired to cow 3, and cow 2 can be paired to cow 4, which is distance 50 away from it along the circumference of the circle, making the answer still 50.

SAMPLE INPUT:

4 100
0 1 2 99

SAMPLE OUTPUT:

3 2

For k=1, cow 3 can be paired to cow 4, which is distance 2+100−99=3 away from it along the circumference of the circle, making the answer 3.

For k=2, cow 1 can be paired to cow 3 and cow 2 can be paired to cow 4. Each of these pairs contains two cows at a distance of 2 from each other along the circumference of the circle, making the answer 2.

SCORING:

Inputs 3-4: 2lNC
Inputs 5-6: N≤20
Inputs 7-14: N≤100
Inputs 15-22: No additional constraints.

Problem credits: Benjamin Qi

2025-2026赛季USACO第二场月赛各等级考情分析!附第二场真题+解析+参考答案!

USACO美国计算机奥林匹克竞赛2026年第二场月赛已于近期结束。本次比赛整体难度较第一场有所提升,尤其在算法思维深度、优化技巧和数学建模能力方面对选手提出了更高要求。尽管金级赛段因系统故障导致最后半小时无法提交,官方已承诺适当调整晋级线,但各等级的题目设计仍充分体现了USACO一贯的“重思维、轻模板”风格。

扫码免费领取【2025-2026年USACO计算机奥赛第二场月赛】

真题+视频解析+每道题目的参考答案

铜组

银组

金组


USACO第二场月赛各等级详细分析

铜级篇(Bronze)

晋级分数线预测

预计晋级线:700–750分(满分1000)

虽比第一场略难,但达到晋级门槛仍属可实现目标。

题目分析

第1题:【Simulation】

基本上就是一道从后往前的模拟题,需要大家观察一下最终输出的字符和哪些因素有关:

原本按下的是什么键,在这个键之后有多少个O; 对于每一个位置,如果它之后的O的按键出现偶数次,这个位置就应该显示的和按键的一致,出现奇数次,这个位置就应该是和显示相反的字符; 从前往后模拟不可以的情况下,我们就尝试从后往前模拟就可以了。

第二题【Complete Search】

这道题第一眼的感觉就是complete search,并且board的块数并不大,只有20,大家肯定会想到2^20种可能性,然后对每一种可能性检查得分,但是这道题的查询数量也高达2*10^5,如果把查询数量和board的可能性相乘,这个时间复杂度是不能接受的。

这时候我们就要想办法怎么去做优化,complete search的优化的关键在于避免重复计算,那我们就看看这里面有哪些操作可以缩减和合并的,因为这个字符串的每个字符只有2种形式,很容易会想到用bit string来表示,既然用bit string了,大家就可以顺理成章的想到bitwise的相关operations,因为我们每次只选择3个字符,并且是不同位置的字符,一共有20种选择,那么3个字符的选择的种类也就缩减到20*19*18=6840种,也就是查询数量的量级直接降到了原来的接近1/30。

再这个基础上还可以做优化,在某一种board的组合下,如果查询的三个块对应的位置(x,y,z)符合MOO,那么所有除了这三个位置以外的N-3个位置就可以是任意的组合,这些组合都可以累计得分。

最终我们把所有的组合的分梳理选择一个最大值,再把等于这个最大值的组合统计出来就完成了题解。

第三题【Greedy + 预处理】

这道题也运用到了二进制拆解的技巧,因为任何一个整数都可以拆分成多个2次幂的和,利用这个特性,我们就可以以2的不同的幂次作为单位,构建最终的x的容量。

我们还需要对每个2的幂次单位的牛奶的最优价格做预处理,不仅要考虑在价格更低的情况下用小容量组成大容量,还需要考虑过度购买容量却更便宜的情况。

我们的题目要求是购买大于等于x单位的牛奶,所以,最终在构造x的容量时,需要在精确购买和过度购买之间选择一个更划算的作为答案。

铜级考点小结

总体而言,铜级三道题的考察点分布比较均匀,特别是上次提到第一场没有涉及的【Simulation】,在本次考试进行了考察,对于complete search如何优化是大家需要平时重点关注的一个点,以及对于二进制,bitwise operation相关的优化技巧的熟悉也是必不可少的。

银级(Silver)

晋级分数线预测

预计晋级线:700–750分

难度明显高于第一场,无直接套用经典算法的题目,强调自主推理。

题目分析

第一题【Greedy】

这是一道带贪心的构造题目,和上次比赛的第三题有点像。从图论看的话,是一个【哈密顿回路】。这道题的关键,要先从局部出发,在原环中如果v在u右边,那么必须满足R[u]=L[v]。明确这个条件以后,就可以推导出3个必要条件:JN和NJ个数相等;JN和NN个数总和必须是偶数;NN、JJ都有的情况下,必须有JN。

后面构造的过程,可以有多种方案,核心就是用JN和NJ来做状态切换,确保回到开始的时候,是一致的状态。比较简单的方案,就是先全部JJ,再用一个JN切状态,再全部NN,再用一个NJ切状态,最后剩余的JN、NJ交替使用就可以。

今年的两场比赛,都涉及到了【贪心构造】问题,这类问题各不相同。大家要学会从局部出发,比如这里我们先考虑u和v的关系,往往这是题目的一个突破口。

第二题【Simulation + Priority queue】

这是一道模拟题,需要结合【从后往前】考虑的思想,并且要选用合适的数据结构存储信息,降低时间复杂度。如果大家做【2020 open s2 Cereal】这道题的话,会觉得它们基本上是同一个问题,只不过在上面做了一个加强。

首先,因为查询的都是后缀,所以想到从后往前处理。每次新加入一个牛,会先去看最小的条件(所有条件要先排序,因为最小条件先被选择),不过这个看的过程就要进行拆解。我们需要记录,每个条件目前已经选中哪些牛。如果总个数还没有达到上限制的话,那么直接被选中,然后结束。否则的话,不要直接放弃,而是要看可不可以替代某个牛,因为同一个条件会先选rank小的牛(这里直接找到rank最大的牛,看能不能替代就可以)。如果能替代的话,那么被替代的牛,也要重复这个过程,去找自己能匹配的条件;不能替代的话,目前的牛就只能继续去看下一个条件。整体过程中,为了快速找到rank最大的牛,可以选用【Priority queue】去优化。

总体这是三道题中最简单的,不过给的数据有点多,要理清它们之间的关系,选择合适的数据结构,实现部分用recursion可能会更容易实现。上次比赛的第一题也是【simulation】,也是从后往前考虑的思路,大家要重视。

第三题【Two Pointers + Priority queue + Sweep Line】

这是一道环上【区间指针】的问题,不过难点在于可以不是单一方向。简单部分,就是一个经典问题,对于每个位置j,找到一个以它开始的最小连续区间,能包含所有的数字类型。这个问题,在【区间指针】专题做过很多,不过这里可以也反方向。需要再算一次以j作为结尾,最小的连续区间。

不过麻烦的,可以不是单一方向。也就是j在[L,R]区间范围内,可以先去到L再去R,或者先去R再去L。这里分析可以看出,具体哪一种取决于j和(L+R)/2的大小关系。但是直接枚举计算会超时,我们可以利用【Sweep Line】的想法,定义三类事件:1、j等于L;2、j等于(L+R)/2+1;3、j等于R。再定义两个【Priority queue】小顶堆,pq1存满足j在区间左侧一半的R-2L,pq2存满足j在区间右侧一半的2R-L。想象一下j从小变大,对于某个固定区间,会先触发事件1,进入pq1;再触发事件2,从pq1移除进入pq2;最后触发事件3,从pq2移除。实际实现时,直接删除不好实现,可以延迟删除,想要取出top的时候,把已经过期的先不断删除即可 。

总体这道题应该是三道题中比较难的,不过想到O(N^2)的方案应该还算容易,【区间指针】也是我们强调的重点。【Sweep Line】的思想,银级本来没有涉及,大家也可以提前学习接触下。

银级考点小结

总体而言,银级这次对于核心算法的考察很少,所以很多同学会觉得很难,因为题目比较灵活,需要你自己去推理找到很多关键点。

最后一场比赛,不知道它的出题风格,可能会继续偏逻辑推理,也可能会回归到重点算法。所以对于【Binary Search】、【Tree】等还没有涉及的重点算法,后面大家多多关注。

金级(Gold)

晋级分数线预测

预计晋级线:750–800分(因系统故障可能下调)

题目综合难度高,强调多层抽象能力。

题目分析

第一题【Binary Search + Math】

外层是一个明显的Binary Search,内层的check 函数并非简单的贪心,而是转化为寻找凸函数的极值,这是金级题目中常见的“套路升级”。

通过研究不同情况下的函数,会发现呈现出斜率从-1、0、1或者-1、1的跳跃。为了找到全局最小值,可以转换为求这些跳跃点的中位数问题。还有对高精度与大数据范围的考察,涉及 10^18 级别的操作数K,要求使用 int128处理中间计算结果。

第二题【BFS + Greedy】

贪心与搜索的结合,将字典序与BFS结合,考察了在动态过程中维护最优性质的能力。

第三题【Functional Graph】

图论结构的深度考察,要求考生能熟练处理环与树枝的逻辑关系。

金级考点小结

总体而言,今年的变化在于题目不再提供直观的算法切入点,而是隐藏在多层数学模型和图论结构之下,对选手的“预处理意识”和“结构拆解能力”提出了更高要求。

USACO竞赛9.9元体验课+寒假集训班

铜级→银级→金级,金牌导师亲授!

扫码了解详细课程安排

USACO 竞赛适合几年级学生?如何规划?2026赛季USACO中国选手专属备赛注意事项已更新!

USACO以其友好入门、平稳进阶、能力导向的特点,成为全球中学生计算机竞赛中的“黄金标准”。无论你是零基础的编程新手,还是已有CSP/NOIP经验的国内选手,都能在USACO体系中找到适合自己的挑战路径。

本文结合年级特点、中美竞赛差异、中国学生专属注意事项,为你量身定制高效备赛策略。

一、按年级划分:谁适合参加?如何规划?

6–9年级(初中阶段)|打基础的黄金期

优势:学业压力小,时间充裕,可系统学习;

目标路径:

第1年:掌握 C++ 基础语法 → 冲刺 Bronze → 晋级 Silver

第2年:学习贪心、二分、DFS/BFS → 冲击 Gold

建议:

每周投入 4–6 小时,坚持刷题;

优先用 C++(效率高,利于高阶发展)。

成果预期:初三前达到 Silver/Gold,为高中申请国际课程或竞赛铺路。

10–11年级(高中阶段)|冲刺名校的关键窗口

若零基础:

提前3个月集中训练:每天1–2小时,主攻 Bronze/Silver 高频题型;

目标:首场晋级 Silver,次场冲击 Gold。

若有 Silver 基础:

聚焦 Gold 核心模块:动态规划、图论、线段树;

参加 12月、1月、2月三场月赛,争取在 RD 前拿到 Gold 证书。

升学价值:Gold 及以上可写入 Common App,显著提升 CS/AI 专业申请竞争力。

12年级(高三)|最后的背景提升机会

基础较强者:

直接挑战 Gold/Platinum,12月赛是 RD 前最后一次机会;

若晋级,可在 ED II 或 RD 文书中强调“持续精进”。

基础一般者:

可用 Python/Java 快速上手(但效率较低,仅限 Bronze/Silver);

通过大量模拟题提升熟练度,争取 Silver 奖项用于申请补充材料。

注意:US Open(4月)成绩通常赶不上 RD,12月赛是最后窗口!

二、USACO vs 国内竞赛(CSP/NOIP):核心差异

维度 USACO CSP/NOIP
题目风格 生活化场景(奶牛、农场),重问题建模 抽象数学题多,偏重技巧性
算法深度 强调 DP、图论、数据结构融合应用 基础算法为主,部分题靠“套路”
评分机制 按测试点给分,支持无限提交 通常全对才得分,调试成本高
思维要求 “如何建模?” > “用什么模板?” “见过类似题?” 很关键
语言自由度 支持 Python(低阶可用),但高阶需 C++ 主流用 C++,Python 极少

对中国学生的启示:
USACO 更考验 原创思维 + 工程实现能力,而非“题海战术”。
即使有 NOIP 经验,也需调整思路:从“套模型”转向“造模型”。

三、中国选手专属备赛注意事项(2026最新)

1. 时间换算:别错过认证窗口!

美东时间周六 12:00–12:15 = 北京时间周日 00:00–00:15

行动:提前设手机+电脑双重闹钟,避免误时。

2. 网络与环境配置

VPN 测试:提前一周测试稳定性,避免比赛中断;

关闭干扰:

禁用 Windows 自动更新、微信弹窗、杀毒软件;

使用轻量 IDE(如 Code::Blocks、Dev-C++),避免 VS Code 插件冲突;

本地测试:熟悉 freopen 文件输入输出格式。

3. 科学备赛节奏

阶段 重点任务
Bronze → Silver 掌握循环、数组、模拟、简单DFS;刷完 USACO Guide Bronze
Silver → Gold 攻克二分、前缀和、BFS/DFS优化、基础DP;每日1题
Gold → Platinum 精研线段树、Dijkstra、区间DP、贪心证明;复盘近3年真题

赛后必做:每场月赛后48小时内完成错题分析,建立个人“解题模板库”。

4. 合规底线:独立参赛,远离AI

严禁行为:

使用 ChatGPT、Copilot 等 AI 工具生成/修改代码;

与他人讨论题目或共享代码;

多设备/IP 切换(可能触发反作弊系统)。

后果:成绩作废 + 账号封禁,影响未来申请诚信记录。

原则:USACO 考的是 你的真实能力,不是“工具辅助下的表现”。

备赛的同学可扫码免费领取新赛季USACO全套干货资料⇓

USACO一对一辅导规划!

2026 USACO 首场月赛核心数据速览!对比2025年首场月赛有何不同?

USACO作为全球最具影响力的中学生计算机竞赛之一,不仅是 美国IOI国家队选拔通道,更是 申请MIT、Stanford、CMU等顶尖CS/AI项目的“硬通货”。2026赛季首场月赛数据一经公布,立刻引发广泛关注——铜组参赛人数暴涨54%,金组激增86%,白金组锐减近半,背后透露出怎样的趋势?对备赛者意味着什么?

一、2026 USACO首场月赛核心数据速览

级别 参赛人数 晋级线 预估晋级率 预估晋级人数
铜 Bronze 10,377 ≥700分 ~15% ≈1,556人
银 Silver 3,876 ≥700分 5%–6% ≈194–233人
金 Gold 1,917 ≥800分 2%–3% ≈38–57人
白金 Platinum 191 极低 <10人

总有效提交者:11,896人(来自100+国家,中国位列前五)
美国本土参赛者:5,147人(占比约43%)

二、关键趋势对比:2026 vs 2025 首场月赛

组别 2025 首场 2026 首场 变化
铜 Bronze 6,735 10,377 ↑ +54%
银 Silver 4,070 3,876 ↓ -4.8%
金 Gold 1,032 1,917 ↑ +85.8%
白金 Platinum 352 191 ↓ -45.7%

趋势解读:

铜组暴增 → USACO 全球热度持续飙升
更多初学者涌入,竞争基数扩大,“入门即内卷”。

金组翻倍 → 赛制改革推动“认证需求”
2025年起取消“永久白金”,选手需每赛季重新认证,导致大量中高阶选手扎堆打金组刷成绩。

白金腰斩 → 顶尖选手稀缺性凸显
真正能稳定解出Platinum级别题(如线段树、网络流、动态规划优化)的学生极少,含金量反而更高。

三、2026首场月赛真题难度与考点分析

铜组(Bronze)—— 基础编程 + 模拟思维

Chip Exchange:贪心策略 + 数学推理(最小交换次数)

COW Splits:数组分割 + 计数(枚举合法切分点)

Photoshoot:模拟队列 + 字典序构造

特点:无复杂算法,重逻辑清晰与代码实现能力,适合刚学完循环/条件/数组的学生。

银组(Silver)—— 数据结构初探

Lineup Queries:前缀和 + 区间查询优化

Mooclear Reactor:栈/队列模拟 + 状态判断

Sliding Window Summation:滑动窗口 + 前缀和加速

关键:掌握 O(n) 或 O(n log n) 解法,避免暴力 O(n²)

金组(Gold)—— 算法综合应用

COW Traversals:动态规划(路径计数)或组合数学

Milk Buckets:区间处理 + 贪心/模拟

Supervision:高级数据结构(疑似线段树、树状数组)或复杂贪心

难点:需在3–4小时内写出高效、无Bug的完整程序,对调试能力要求极高。

四、USACO 改革深意:挤水分,提含金量

2025年起,USACO 实施多项改革:

取消“永久白金”:每年需重新认证;

晋级线动态调整:根据题目难度浮动;

反作弊机制升级:代码查重 + 行为监控。

改革效果:

维度 改革前 改革后
成绩水分 存在“躺赢”永久段位 必须持续证明实力
公平性 部分靠运气晋级 真本事才能突围
名校认可度 更高(因含金量提升)

备赛的同学可扫码免费领取新赛季USACO全套干货资料⇓

USACO一对一辅导规划!

在线咨询
微信咨询