【USACO】信奥选手要到达什么层次,才可以参加USACO?

点击领取>>>信息学奥赛 NOI、NOIP、各区CSP-J/S初赛复赛试题&蓝桥杯、信息杯、智慧杯编程试卷& 海淀区科普节、程序设计大赛

USACO

USACO,中文全称“美国信息学奥林匹克竞赛”,相当于中国的 NOI 系列赛事。其比赛官网为 www.usaco.org,本文以及同系列文章所指的 USACO,均为每年 12 月至次年 3 月的三场月赛+一场公开赛,而不单指官网资源、及其附带的数量有限的训练题 USACO Training。

相信看到本文的读者,已经在之前同系列的文章中,对 USACO 有所了解。不过,比起官网上即可直接查询到的比赛信息,读者们更关心的应该是赛事本身之外,与选手、赛题、作用等相关的细节。本文将一一回答一些常见问题。


01

USACO 与国内的 CSP、NOIP 系列赛事相比,难度如何?

在回答这个问题之前,首先要明确一点:USACO是一个宽泛的简称,类似国内的 CSP 赛事,需要按照组别分为 CSP-J(Junior,普及组)和 CSP-S(Senior,提高组)。USACO 也按照考察范围和题目难度,分为四个组别:

 Bronze            青铜组

 Silver               白银组

 Gold                黄金组

 Platinum          白金组,新增于2016~2017 赛季

因此,要比较 USACO 与 CSP 两系列赛事的难度,就应该细分到组别之间,进行难度对等。而恰好,USACO 和 CSP 都是本国信息学奥林匹克竞赛的选拔赛,因此,两者之间的难度层次相当。但结合近两年的 USACO 月赛试题难度进行综合比较,难度细节应如下(以下假设 CSP-J/CSP-S/NOIP 赛题难度按题号递增排序,难度范围上下浮动,仅供参考):

图片

可以看到,各组的赛题难度有较强的递进顺序,像远高于青铜/白银组难度的赛题突然在该组乱入的情形是不存在的。因此,有志于 CSP-J/S 的选手,应聚焦于对应的 USACO 青铜/白银组赛事;如果希望在 CSP-S 中斩获头筹,或是在高中阶段以信息学竞赛为主赛道,那么关注黄金乃至白金组的赛事,则是必不可少的。但除此之外,在刚才的表格中显示,各组赛事的难度也有所浮动。为什么会有如此浮动呢?这大致可以分为两个原因:

其一,单场比赛内,不同的题要能够体现出区分度。类似于 CSP-J 这样的比赛,一场比赛里面最简单的题,几乎是读完题就能马上有思路,想象到代码应该怎么写的送分题;而哪怕是作为信息学竞赛普及组阶段的赛事,其最后一题也是需要花上一番功夫的,思考、编码并调试,每个环节都不可或缺。最经典的案例,莫过于 2022 年 12 月场的青铜组第 3 题《逆向工程》,该题除了基本的程序设计知识外,几乎不需要任何算法知识,但是却能以自身所需的思考和编码过程,跃居近几年来 USACO 青铜组难度排行榜的前列。

图片
2022年 12月月赛 青铜组第 3 题《逆向工程》

其二,USACO 赛事的全球性与晋级规则,给试题难度带来了负反馈。众所周知,USACO 比赛的每个组别都只有 3 道题,3 道题全部拿到满分,则可以直接晋级到下一组别;而其余没有拿到满分的选手,根据分数是否超过赛后统计分数后划定的晋级线,决定能否晋级。

虽然 USACO 一直是全球性在线赛事,但过去几年,人数也不过数千人计。转折点可能始于 2018 年:那一年的 12 月,有不到五千人次参加竞赛,其中中国选手人数也并没有破千,但正是从那一年起,USACO 竞赛开始提供中文题面。而到了 2022 年的 12 月,总参赛人数早已破万,而中国选手人数已经直逼五千。随之而来的,也是越来越多的选手抱怨或感慨 USACO 低级组别题目难度的提升。

实际上,由于中国学生的信息学竞赛学习水平的平均值较高,因此如果 USACO 组委会不提升题目难度,则能够预想到:低级组别中,将会有许多中国选手满分晋级,拉高晋级分数线,从而影响到赛事的平衡性。

图片

2022年 12月月赛参赛数据

不过,从去年赛事的细节中,可以预见:选手们能够逃离试题难度的内卷了。因为 2022~2023 年赛季的 3 次月赛中,除了第一次 22 年12 月场,接下来的 23 年 1 月场和 2 月场两次比赛,USACO 官方竟然都没有提供中文题面,取而代之的是保加利亚语和亚美尼亚语等语种。随之变化的也有低级组别的试题难度,逐渐趋于平稳,估计也是 12 月场的青铜组试题怨声载道,引起了 USACO 组委会的重视。USACO 官方虽然没有明说,但是这也算是一个重要信号:USACO 赛事已经从追求影响力的扩张时代,回归到关注赛事本身的稳定性了。

除却以上宽泛的难度分组对齐,以及将来要重新面对的“语言关”,其实 USACO 赛事会比 CSP、NOIP 系列赛事更为友好。同样是 4 个小时的长时间赛制,选手可以反复提交程序,实时查看自己的得分,但不能查看数据得知自己的具体错误原因,且多次提交不会影响最终得分,这使得选手们在比赛中有更多试错的机会。当然,这对于备战国内赛事的选手而言,未必能帮助他们养成检查自己程序的习惯与能力。但在 USACO 赛题出题人大多为往届美国国家队“国手”的如今,用其赛题锻炼自己的思维能力,本就应该是参加 USACO 竞赛的最大目的。

另外,USACO 竞赛中,每道题虽然会指明哪些测试点是数据规模较小的情形,即子任务(subtask),但在题面的数据范围中,子任务的分档不会写的特别明白,从而会导致那些想针对性地获得部分分的选手迷茫,这是 USACO 竞赛和国内传统信息学竞赛另一个很大的不同,选手们的考场策略也需要随之变化。因此,如果实力在当前组别还有提升空间,那么想通过每道题都实现一个不甚完美的算法来拿到高分,也并不是一件容易的事。


02

选手水平要到达什么层次,才可以参加 USACO?

由上所述,选手要参加 USACO 竞赛,如今需要重新面对“语言关”。用长段的英文来描述一个或与现实、或与抽象相关的问题,难免要夹杂着一些生词。好在赛事过程中查词典是允许的,事实上,USACO 赛事并没有监考。对于初中阶段的同学,课内的英语学习已经涉及到长段阅读了,所以对于英文题面的阅读能够较快适应,而尚处于小学阶段的同学就要“受苦”了,不过语言关的难,只是适应性的难,不是知识性的难,毕竟小学阶段的同学要参加 USACO,往往已经到了小学高年级阶段,具备一定的英语素养,第一次参加 USACO 竞赛,只需老老实实花上 10~20 分钟左右,把每道题都翻译出对应的梗概和关键问题、信息,接下来要做的事情就与自己学习信息学竞赛时所做的训练别无二致了。图片巧用网页翻译功能或者翻译软件翻译试题对于读者们比较关心的参加 USACO 的条件问题,不取决于老师的主观判断,而应该是自己从注册 USACO 账号开始,能够从第一次参加青铜组开始,打到什么组别才停滞。因为 USACO 竞赛有晋级制度,且每次比赛的组别不是可以自行选择的。如果这一次选手发挥出色,在青铜组拿到了满分,那么下一次竞赛,选手就需要从白银组开始打,在比赛时看不到青铜组的试题了。这就导致一个问题——备战 CSP-J 的选手,理应做不超过白银组的题目,在某次青铜/白银组比赛发挥出色而晋级之后,下一次比赛面对更具难度的题,就完全没有思路了。实际上,如果不是考虑出国留学至顶尖美国高校的同学,可以不用在乎 USACO 竞赛的实时性,直接在赛后抽选时间做题即可。需要注意的是:既然 4 小时只用做三道题,那么必然每道题都有一定的思考需求和代码量,如果自己无法保持对问题和答案的矜持,那就不要贸然选用 USACO 的赛题来训练自己,不注重思维训练的做题模式,只会浪费这些优质试题。

图片


考虑到本文受众大多为志在 CSP-J/S 竞赛的学而思学员及其家长,这里给出“接地气”的结论(以下每一层级的学期制,对标学而思 C++ 长期班):1.至少学习完 Z1 的 C++ 语言知识,再考虑参加 USACO 竞赛。实际上,Z2 才涉及的递归,也是非常重要的语言内容。2.学习完 Z2的同学,在学而思的课内阶段测试能够拿到满分一半的分数,说明该学期的基础掌握良好,可以尝试参加 USACO 青铜组的比赛,看一看自己的初学情况,距离正式比赛的考验还差多少。3.学习完 J1 的同学,可以以赛代练,以 USACO 青铜组的赛题,检验自己过往的学习情况。且学有余力、能在阶段测试取得优秀成绩的同学,可以尝试参加 USACO 白银组的比赛,感受正式比赛时,自己可能会面对的压力,与需要抉择的考场策略。4.学习到  J2  的同学,USACO 青铜组的赛题,对你来说,应该要不在话下。USACO 白银组的题目,对于在信息学竞赛领域并未深耕太久的同学来说,多少会有些压力,但学习到这个阶段的你,既然坚持做好了平日每一次课的综合性练习,那也要能够适应白银组的难度。5.再往上走,则是志在提高组的同学们,青铜组和白银组对你来说需要都不在话下。既然 CSP-S 和 NOIP 题目难度重回昔日已是大势所趋,那么参加 USACO 竞赛的你,也自然需要向黄金组,甚至是白金组,发起冲击了。最后,需要补充说明一点:以上还只是给出了在学而思学习阶段与可以参与的 USACO比赛的模糊对应。实际上,要正式参加比赛所需要的,或者说选手要从参加 USACO 比赛中锻炼的两个能力,应该是:1.自行检查并改正自己程序错误的能力,即调试能力。2.除去题目给出的样例数据,还能自行构造出样例数据中没有,但可能使得程序错误的极端/特殊情形的数据,即 hack 能力。即使 USACO 实时返回结果的赛制与国内竞赛不同,这两项能力也是参与 USACO 竞赛所需要的,而它们的养成,同样也利好选手在未来的 CSP-J/S 赛场上,牢牢地把握住一年中唯一的一次机会。

03

参加 USACO 需要选手掌握哪些知识点?


上文已经将各组别与学而思的学习阶段对应起来了。最后,针对每个组别试题可能对应到的知识点,再做一个总结

Bronze        青铜组

青铜组的试题,一般只需要同学们掌握最基本的 C++ 语言知识,以及简单的枚举、搜索算法(深度优先搜索,即 DFS)。在学而思的 C++ 编程的课程设置中,这些内容会在Z2 完成讲授。

另外,青铜组的试题,偶尔也会涉及到一些套路式的知识,比如 Z2 的前缀和 和贪心法。不过,或许在命题组眼中,一位参加竞赛的同学要么要有足够的知识储备,要么要自己有能力想到这一经典做法。实际上,前缀和和贪心法也不需要过多的编程知识积淀,通过一些数学知识就能够想到。

 Silver         白银组

白银组的试题,涉及的知识点对于普及组学习的同学们来说,就相当广泛了:

■基础数据结构:队列、栈、优先队列。在过往的白银组赛题中,甚至有这一图论结构的身影,而树在学而思课程体系内,是提高组 S1 课程的第一课。

■基本的算法技巧:前缀和、二分法、排序、贪心、尺取法、倍增法、分治法。这些方法更像是朴素的暴力做法的上位替代,对于通过课后练习熟悉了这些方法的同学而言,这些方法应该是要能自然而然想到的方法。

■搜索:BFS 和 DFS 这两种搜索方法自不必说,如果为了追求部分分数,剪枝也是必不可少的一环。

按照往届赛题经验,做法较简单的 DP,也可能出在白银组中,毕竟重在思维而代码简洁的 DP,永远都会是信息学竞赛的宠儿。

 Gold           黄金组

从黄金组开始,试题的难度就已经游离于普及组学习阶段的同学的能力范围之外了。这一阶段的赛题,最大的特点是:不仅需要熟知各个知识点,还要有将不同知识点与复杂结构,糅合在一起以解决复杂问题的能力。

以下知识范围,仅供参考:

高级数据结构:树状数组、线段树、并查集、分块莫队、平衡树等。

搜索进阶:折半搜索,IDDFS,IDA* 等。不少选手可能会默认比赛里面不会有这样的搜索题,但是折半搜索的的确确出现在 USACO 的赛题中,作为黄金组和白金组赛题做法的重要一环,实际上,它们本质上也只是更加优秀的暴力做法。

图论:图的存储、最短路、最小生成树、最大流、二分图等。

字符串:KMP、Trie、AC 自动机、后缀数组、后缀自动机等。

基础的数论与组合数学知识。

 Platinum     白金组

有余力进军这一层级的同学,也无需老师再帮忙“考前划重点”了,他们自然明白:在最高规格的赛事,无论是你听说过的,还是没有听说过的知识点,甚至是不需要太多知识点,但对思维要求极高的构造过程,都可能作为赛题的一部分。从DP 套入数据结构的优化,到平衡树、后缀自动机这些进阶选手们津津乐道的复杂结构,没有哪一样是白金组竞赛的黑科技。

微信公众号搜索: 北京小学学习资料     家长升学指南  关注公众号,获取最新资讯!   

图片 扫码添加“家长论坛”微信好友(微信号 16619908263

获取信息学奥赛 NOI、NOIP、各区CSP-J/S试题&蓝桥杯、智慧杯、 海淀区科普节真题
咨询信息学奥赛 NOI、NOIP、各区CSP-J/S试题&蓝桥杯、智慧杯、 海淀区科普节政策请拨打电话 16619908263 (同微信号)

已邀请:

要回复问题请先登录注册