此次小编要继续带大家探索另一项计算机专业的知名赛事
赛事介绍
USACO(USA Computing Olympiad)是由美国官方举办的中学生计算机编程与算法线上比赛,也是誉满全美的中学生计算机编程学术活动。初次举办于1992年,其官网是美国中学生的官方学术活动网站。是美国著名在线题库,专门为信息学学术活动选手准备。开设目的是为每年夏季举办的国际信息学奥林匹克学术活动(IOI)选拔美国队队员。和奥数IMO一样,成为美国大学申请条件下,含金量相当高的官方学术活动。在2016-2017赛季中,共有2003名参赛选手入围公开赛。其中中国籍选手共132人(仅次于美国926人),成为参加USACO公开赛的第二大国。从官网的题库设置来看,做题方式与参与正式比赛时相同,采用了标准测评机、文件输入输出、直接提交程序源文件的测评方式。Training题目全面,是学习信息学不可不知的网站,每年NOI都会参考上面的题目。每道题附有详细题解,可查看测试数据和运行结果,便于调试、发现错误并改正。
采用章节递进的层次结构,由易到难,结合了讲授知识与练习编程,且为了避免只挑简单题做的行为,题目必须依次完成。各章节犹如一本学术活动辅导书,形成了一个鲜明的知识结构,利于初学者和高手逐步提高水平,充分学习信息学各方面知识。
从学生个人成长角度而言,USACO不仅仅是一项可以让申请者迅速提高学术背景的比赛,编程本身作为一门使用技能也会让理工科的学生受益终生。即使是商科文科的同学,学习编程时也能从另一角度训练和提升你的思辨能力。
NOI:由中国教育部和中国科协委托中国计算机学会举办的全国青少年信息学奥林匹克学术活动(简称NOI)。目的在于促进优秀学生交流和学习,以及选拔和培养计算机人才。
USACO的赛制
USACO的参赛选手共分铜、银、金、白金四个级别,所有参与者都要经过一轮轮的不同等级赛题慢慢晋级。如果铜级满分,当场晋级银级继续比赛,反之则要等到下个月再接着往下比。每年12月及来年的1、2月共有三次月赛机会。而12月的月赛通常是圣诞前的一个周末,当场出成绩,一周内放榜,非常适合在RD的截止前冲击申请材料的最后一个闪光点。
USACO的学术活动等级
青铜级别参赛资格:一进入USACO注册账号即为铜级。难度等级:铜级考试只要基本编程常识,会至少一种编程语言。统计的编程限制时间比较充裕,大部分选手都能在初次参赛中晋级白银级。白银级别参赛资格:通过青铜级比赛的选手。难度等级:需要基本的问题解决能力和简单算法(例如:贪心算法、递归搜索等),还需了解基础数据结构。从白银级开始,选手需要寻找更好的算法才能使程序在规定时间内跑完。黄金级别
参赛资格:通过白银级比赛的选手。
难度等级:需要有一定的算法基础,理解一些抽象的方法(例:最短路径、动态规划),并且对数据结构有比较深的了解。
白金级别
参赛资格:通过黄金级比赛的选手。
难度等级:需要有很高的编程基础,对算法有深入的了解。部分比赛问题最后的优化方案可能不止一个,得出的答案也不止一个。
USACO的比赛规则
报名要求:国内高一高二在读学生,高三学生最后一次的参赛机会是当季12月的第一场比赛,如果实力突出,可以在12月中,RD常规申请前获得白金级奖项,把握住申请前最后一波强势的背景提升机会。比赛规则:比赛用时:每场比赛4-5个小时。可以在比赛规定时间开始后登录USACO账号,从在线打开试题后开始计时。比赛形式:选手需要在时间结束前通过网络将写好的程序提交。程序提交后官网会给出用test case检测程序的结果,并根据结果给出这一题的得分。可以使用C++,Java,Python,Pascal,和C中的任意一种编程。比赛对于程序的大小,运行需要的内存以及运行的时间都有一些具体规定。
晋级机制:
每次比赛,实力强的选手有机会连续升级。在比赛窗口开放的三天时间内,选手可以选择任意时间开始比赛。开始比赛4小时内,如果拿到了高分(接近满分或满分),系统会提示直接晋级,可以在这三天内继续挑战下一级,只要实力够强,一场考试可以升到满级白金级。没能拿到满分的选手需要等到三天的赛程结束后,等待晋级分数线,才能决定是否晋级,如果成功晋级,可以在一个后的第二场考试继续参赛晋级。
USACO的含金量
随着STEM教育的理念,及编程低龄化、普及化的发展,USACO的参赛人数和热度越来越高。又由于编程的门槛相比数理化学习要高一些,因此USACO的难度和含金量实际会略高于同类型的USAMO(美国数学奥赛),USNCO(美国化学奥赛)等等学科奥赛。此外,USACO目前是老美非常热衷但在中国高中生中的普及度相对来说并不高的赛事,有大量的学生参与了更热门的USAMO,USNCO等学术活动。计算机赛事不像数理化那么多,USACO还是少有的还没有被中国选手刷的太多的国际大赛,换言之,参赛选手少了,获得荣誉的人少了,并且它本身历史悠久,题目质量很高,含金量自然更高。对于美本申请工程学科的高中生,USACO能够获得黄金或者白金级别的奖项,绝对是提高竞争力的大杀器。
姓名 | 奖项 | 录取学校 |
L同学 | USACO白金IOI金牌AIME12 | 麻省理工学院 |
W同学 | USACO白金NOI金奖IMO金牌CTB全国特等奖 | 斯坦福大学 |
Z同学 | USACO白银CTB全国一等奖 | 芝加哥大学 |
USACO对申请的帮助
如何备赛?
比赛级别 | 考核知识 | 推荐学习时间 |
青铜级别 | 基础数组,多重循环,复合判断,枚举算法 | 50小时编程练习 |
白银级别 | 基本数据结构,贪心、递归、递推等基本算法 | 语法熟练+50~100小时算法练习 |
黄金级别 | 堆、栈、树、链表等高级数据结构,动态规划等高级算法,算法时间和空间复杂度 | 200+小时算法练习 |
白金级别 | 各类高级的数据结构,尤其需要注意算法的时间和空间复杂度 |
对于没有编程基础的选手:
建议从Python或者Java入手,上手会比较快。可以选择先自学,学习主要内容为数据结构,编程语法,配合一定强度的练习,可以初步通过第一轮铜级的选拔。
对于有部分编程基础的选手,比如在读AP计算机的高一高二同学:
可以从C++或者C入手,作为编程语言中最强大最基础的两门,无论是应付比赛还是在以后读本科或者工作中使用,提前学习C++和C都是不错的选择。
对于有编程基础及编程经验的选手,比如参加过国内NOI的同学:
可以把目标直接定为冲击至少黄金级别以上的奖项,在有数据结构和编程语法的前提下,需要系统的学习一些常见算法,比如排序等等。同时大量练习官方的黄金、白金级别的真题。
© 2025. All Rights Reserved. 沪ICP备2023009024号-1