USACO,全称为 United States of America Computing Olympiad (美国计算机奥林匹克竞赛)。USACO是美国的中学生信息学奥林匹克竞赛,地位等同于中国的NOI系列赛事。
不同的是,USACO面向全球信息学爱好者免费开放,想参加的同学只要注册好账号在规定时间完成比赛即可。并且题目的质量很高,非常适合想要在NOI系列赛事中冲击高分的选手们。
USACO的训练场和比赛都堪称信息学奥赛的经典。国内不少命题也会参考USACO的历史原题,例如2019年CSP-J第三题“纪念品”,简直和USACO 2009年2月场的“Stock Market”一模一样!因此,有志于在国内信息学奥赛中争金夺银的选手们想刷题时,强烈推荐USACO!
国内信息学奥赛,每年一次,很多选手没有足够的赛事经验,在赛场上不能完美发挥自己的能力,一旦错失机会,就要再等下一年;但是USACO每年有4场,如果实力足够,每场都可以从青铜直接打到白金,且其题目难度及质量比国内信奥完全不逞多让。对于想要增加信息学赛事经验的选手来说,非常强烈推荐USACO!
打开USACO的官网,第一眼便是IOI 2023国际信息学奥赛以及EGOI 2023欧洲女子信息学奥赛的美国队成员公示信息,华人面孔占据了很大的比例。
USACO竞赛备受美国名校关注,被哈佛、耶鲁、麻省理工、康奈尔、普林斯顿、卡内基梅隆等理工牛校认可。每年吸引着众多申请美国顶尖大学计算机专业的学生。
例如著名的罗哲正同学,就是通过USACO进入美国国家队出战IOI,并获得了IOI金牌,最终进入麻省理工。
对于计划留学美国的选手,USACO是非常有含金量的履历加分项,对于这部分同学,更是推荐USACO!
在USACO比赛中,中国学生可参加三场比赛和US Open公开赛。这些比赛的单场时长一般在3 – 4小时,没有统一的开始时间和地点限制。选手只要在上述比赛的时间窗口内(注意中美时差)登录官网,任选时间在线参赛即可,比赛会从选手进到试题页后开始计时。
USACO官网:http://www.usaco.org/
注册新账号时,用英文正确填写个人信息:昵称、邮箱、名、姓氏、所在中学、高中毕业年份(已毕业/初中则输入9999)、国籍(中国填写CHN)。
*小学、初中选手则填写所在小学或初中,毕业年份填写9999。
邮件查收自己的账号密码,并登陆官网(24小时内首次登陆方可激活,登录后可修改密码)。
以下图示为某次比赛入口,其中第二张图片的“Start the Contest!”一旦被点击,选手的比赛用时就会立即倒计时,且无法暂停。
使用本地编译器(比如Dev C++)写完代码后,把页面滚到最底下,编程语言选择C++,可以直接复制代码提交,也可以提交cpp文件。
代码提交后,如果程序运行正确,则在题目页面的最上方会出现如下绿色的标识,每个绿色框表示一个测试用例,一般每道题目会有10个测试用例,如下:
同时,封面也会告知每道题的完成情况。下图为上一赛季第一轮比赛的封面页,点击标题即可查看相应题目并提交程序,对于尚未提交的试题,封面页会对应显示“Not submitted”;对于已经提交的试题,封面页会对应显示“Submitted and Graded”。
USACO目前支持C、C++、Pascal、Java、Python等五种编程语言。判分方式和NOI系列赛事相同,即依据程序所能正确求解的测试点数量按比例计分。对于各个测试点,一般题目会标注相应的时限要求和内存要求(如未具体标注,则C/C++/Pascal默认时限2秒,Java/Python默认时限4秒,内存均默认256MB)。
以上为一个题目的评测示例,即最终包含了10个测试点,其中7个正确、3个超时——绿色表示正确,红色表示错误(x表示错误答案,t表示时间超限,!表示运行时错误或内存超限,e表示输出文件为空,m表示找不到输出文件)。
USACO允许选手在比赛时间内多次提交自己的程序,最终评测和排名以最后一次提交的程序为依据。选手提交程序时应正确选择自己所使用的编程语言。
2020年12月起,USACO要求程序使用标准输入输出,相应的文件名在题目中会有写明。但务必注意的是,USACO的评测环境为UNIX,对于文件名的大小写是敏感的,同时规定文件内容的每一行均需以换行符’\n’结尾。
注意学术规范,不能团队做题、不能请教他人、不能查阅书籍、不能借助AI、不能使用自己以前的代码、不能在比赛期间在线讨论或公开自己的代码,也不能注册“小号”……总之,务必独立解题、临场发挥,否则会被终生禁赛!
USACO的月赛和公开赛目前设置有Bronze青铜组、Silver白银组、Gold黄金组、Platinum白金组共4个难度组别。其难度和中国的NOI系列赛事对应如下:
如果是初次参加,那么只能参与青铜组。达到相应分数之后就能晋级下一个组别,分数线是根据整体的分数按比例划定的。USACO通常会在赛后一周发出邀请邮件。但如果能在比赛中获得满分,选手就有可能获得当轮的晋级——此时,如果本轮比赛的时间窗口还没有关闭,选手就可以在这一轮继续向更高的组别发起挑战。
如果想提前感受一下难度,可以在官网做一下历年的真题。
|