美国计算机奥赛-USACO-United States of America Computing Olympiad

竞赛介绍

USACO(United States of America Computing Olympiad, 美国计算机奥林匹克竞赛) 是一项针对全世界所有的高中信息学竞赛选手的一项竞赛。专门为信息学竞赛选手准备,但必须在注册后才能进入题库。这项赛事不仅可以培养学生的算法和编程思维,好的竞赛成绩还能给孩子大学申请加分。

由于有些编程题跟谷歌,脸书等顶级科技公司面试题类似,好的USACO竞赛成绩对孩子以后申请实习也大有裨益。AI时代,计算机编程是一项不可或缺的能力,理工院校对其青睐有加。MIT 2024届早申录取的两名大陆学生中,其中一名学生在中国的NOI比赛(美国对应的是USACO比赛)中获得金牌(全国前50名),入选信息学国家集训队,同时保送清华大学(这是公开政策,获得金牌可保送清北)。

竞赛含金量

对于准备出国留学,打算申请理工科,尤其是计算机/编程方向的孩子来说,USACO不仅培养学生的算法及应用和编程思维,成绩含金量也不言而喻,获得黄金级、白金级的参赛者将大大增加被藤校录取的概率!

USACO不仅在美国大学中认可度高,在美国国内参与度广,而且在全球也具有比较广泛的参与度。上赛季首场比赛参赛人数达到10752人,同比增长了40%!USACO真的是一场国际赛事!

在MIT(麻省理工学院)本科招生官网中,可以赫然看到USACO是被“点名”推荐的课外活动。
而且,大家说USACO是免费的CSP-J/S也不是没有理由的。

在美国,USACO是可以直接对标国内的NOI竞赛的,每年也会举办多次选拔赛,分为铜、银、金、白金四个奖项。无论是NOI还是USACO都是为IOI选拔人才的竞赛。

所以,能在USACO竞赛中取得一定成绩的学生,绝对是妥妥的背景提升!

竞赛流程

适合学生

任意年级中学生

高三学生也可以参加12月月赛,实力突出的选手可以在12月RD申请前获得白金级,不失为一波背景提升机会。

可以使用C/C++,Java,Python,Pascal任意一种编程语言。

注意:考生提交代码后,会立即得到反馈结果。通常的反馈结果包括:全部通过、部分通过、编译错误、超时、运行错误等。虽然能立即得到反馈,但只有在比赛结束后,才能看到测试数据哦!

另外值得一提的是,USACO 竞赛接受多语言编程,包括 C++,C,Java 和 Python

赛事时间(美东时间)

第一场月赛:2021年12月17日-20日

第二场月赛:2022年1月28日-31日

第三场月赛:2022年2月25日-28日

公开赛:2022年3月25日-28日


也可以扫码领取报名表哦!

赛制规则

在赛事窗口开放的三天时间内,选择任意时间开始比赛,只要实力足够,一场可以升到白金级。

其他选手需要等3天赛程结束后,根据分数线决定是否晋级。

铜级

参赛资格:一进入USACO注册帐号即为铜级

难度等级:铜级考试只要基本编程常识,会至少一种编程语言。根据以往比赛来看,铜级的比赛时间还是较为宽裕的,大部分选手能在一次比赛中进入到银级。一般USACO银级的题目可以等于国内NOIP(现CSP)普及组试题难度

需要考核知识点:基础数组,多重循环,复合判断、枚举算法

银级

参赛资格:通过铜级比赛的选手

难度等级:需要基本的问题解决能力的简单算法(例如:贪心算法、递归搜索等),还需了解基础数据结构。从银级开始,选手需要寻找更好的的算法才能使程序在规定时间内跑完。一般USACO白银级的题目可以等于国内NOIP(现CSP)提高组试题难度

需要考核知识点:基本数据结构、贪心、递归、递推等基本算法

金级

参赛资格:通过银级比赛的选手

难度等级:需要有一定的算法基础,理解一些抽象的方法(例如:最短路径、动态规划),并对数据结构有比较深刻的了解。IOI试题>金组试题>NOIP试题

需要考核知识点:堆、栈、树、链表等高级数据结构,动态规划等高级算法,算法时间和空间复杂度

白金级

参赛资格:通过金级比赛的选手

难度等级:需要有很高的编程基础,对算法有深入的了解。部分试题最后的优化方案,可能不止一个,得出的答案也不止一个

需要考核知识点:各类高级的数据结构,尤其是需要算法的时间和空间复杂度,总分1000分。每道题333.3分。每道题有10个测试点,通过一个可得33.33分。青铜、白银、黄金、铂金级别的比赛都是3道题。

竞赛奖项设置

奖项设置

全球的参赛者都可以通过参加网上的三场竞赛,晋级铜奖、银奖、金奖和白金奖四个等级。虽然,最后环节的训练营或者最终代表美国队参加IOI,只有美国公民或者绿卡持有者才有机会,但是在USACO的等级可以充分证明你的编程实力。

竞赛历年真题

真题已经更新至最新年份,扫码免费领取吧!

竞赛常见问题

1.对于没有编程基础的学生如何备赛?

建议从python或者java入手,上手较快。学习主要内容为数据结构,编程语法,配合一定强度的练习,可以初步通过第一轮铜级的选拔。


2.对于有部分编程基础的学生如何备赛?

比如在读AP计算机的高一高二同学可以从C++或者C入手。作为编程语言中强大且基础的两门,无论是应付比赛还是在以后读本科或者工作中使用,提前学习C++和C都是不错的选择。


3.对于有编程基础及编程经验的学生如何备赛?

比如参加过国内NOI的同学,设定的目标可以直接冲击至少金级别以上的奖项。

在有数据结构和编程语法的前提下,需要系统的学习一些常见算法,比如排序等等。同时大量练习官方的金,白金级别的真题。

新闻资讯