United States of America Computing Olympiad, 美 国 信 息 学奥 林 匹 克 竞 赛,于1992 年首次举办,距今已有 30 年的历史,是最负盛名的国际计算机竞赛之一,是一项针对全世界所有高中信息学竞赛选手的一项竞赛。
USACO赛事简介
USACO是一个“算法”竞赛,这意味着参赛者需要用创造和系统的方法来解决问题,而不仅仅是直接把程序的描述直接转换成代码。
例如:“找出列表里面最大数字的位置”是一个非常简单的算法问题,但“写出先画一个圆圈,再画一个正方形的指令”就是另外一回事了。
全球的参赛者都可以通过参加线上的三场竞赛,晋级铜奖、银奖、金奖和白金奖四个等级,表现优异者还有机会参加邀请赛和美国集训营地。
这项赛事不仅可以培养学生的算法和编程思维,好的竞赛成绩还能给孩子大学申请加分,对于申请美国本科的高中生有巨大的背景提升作用。由于有些编程题跟谷歌,脸书等顶级科技公司面试题类似,好的USACO竞赛成绩对孩子以后申请实习也大有裨益。
USACO参赛形式
通过登录USACO官网,在比赛规定的时间范围内(通常是4天,期间覆盖一个周末),在线提交代码的形式参赛。
USACO 每场比赛 4-5 个小时。可以在比赛规定时间开始后登陆 USACO 账号, 从在线打开试题后开始计时,选手需要在时间结束前通过网络将写好的程序提交。程序提交后官网会给出用 test case 检测程序的结果,并根据结果给出这一 题的得分。可以使用 C++ 、Java 、Python、Pascal 、 C 中的任意一种编程语言。比赛对于程序的大小,运行需要的内存以及运行的时间都有一些具体规定。
每次比赛,实力强的选手可以连续升级。在比赛窗口开放的三天时间内,选手可以选择任意时间开始比赛。开始比赛 4 小时内,如果拿到了高分 ( 接近满分或满分 ),系统会提示直接晋级,可以在这三天内继续挑战下一集,只要实力足够,一场考试可以升到满级白金级。没能拿到满分的选手需要等到三天的赛程结束后,等待晋级分数线,才能决定是否晋级,如果成功晋级,可以在一个月后的第二场继续参赛晋级。
三个编程问题的分值都是333.333分,总分是1000分。对于每个问题,分数在每个测试案例中平均分配。如果问题1有10个测试案例,问题2有11个,问题3有12个测试案例,那么问题1的每个测试案例价值33.33分,问题2的每个测试案例价值30分,而问题3的每个测试案例价值27.77分。
注册USACO也很简单,只需要在www.usaco.org注册一个免费账户,注册时你不需要选择特定的比赛日期。只要你有了这个账户,可以在比赛日期随时参与竞赛。
注意:USACO 解题绝对不可以在网上复制别人的代码!不要复制抄袭,一经发现永久封号。
USACO竞赛等级
◾青铜
▪参赛资格:一进入USACO注册账号即为铜级。
▪难度等级:铜级考试只要基本编程常识(例如:基础数组,多重循环,复合判断,枚举算法等),会至少一种编程语言。
▪推荐学习时间:50小时编程练习
◾白银
▪参赛资格:通过青铜级比赛的选手。
▪难度等级:需要基本的问题解决能力和简单算法(例如:贪心算法,递归搜索和递推等),还需了解基础数据结构。从白银级开始,选手需要寻找更好的算法才能使程序在规定时间内跑完。
▪推荐学习时间:语法熟练+50-100小时算法练习
◾黄金
▪参赛资格:通过白银级比赛的选手。
▪难度等级:需要有一定的算法基础,理解一些抽象的方法(例:堆,栈,树,链表等高级数据结构,动态规划等高级算法,算法时间和空间复杂度),并且对数据结构有比较深的了解。
▪推荐学习时间:语法熟练200+小时算法练习
USACO比赛时间
USACO在每年12月-次年3月,每个赛季有4场比赛:12月月赛, 1月月赛, 2月月赛, 3月份的比赛是USACO Open (公开赛);4月份还会有一场比赛Training Camp (集训营地)。前三场比赛的形式是相同的。
每一场月赛都会有三组构成,分别是金组、银组、铜组,难度依次递减,难度相当于NOI-、NOIP提高组+、NOIP提高组-、NOIP普及组-。月赛的题目与IOI试题类型大致相同,绝大多数为传统试题,采用IOI 赛制。
新赛季的具体时间可查看USACO网站的最新发布时间
USACO 12月考试是4次中最容易的一次,秋季班冲刺至关重要。错过了要等一年,考题每年难度都在大幅度提升,考试形式也可能变化。
12月的月赛通常是圣诞前的一个周末,当场出成绩,一周内放榜,也非常适合在RD的截止前冲击申请材料的最后一个闪光点。1、2月份的成绩也可以作为申请递交完毕最好的补充材料。
USACO 美国信息奥林匹克竞赛
常规班/定制辅导
师资服务
◾资深师资
著名企业高级软件工程师,NOI认证信奥教练亲授,丰富实战经验。
◾能力提升
促进逻辑思维能力,提升创造力、结构思维和成就感。
◾备战备赛
夯实基础,攻克竞赛核心考点,高效实操示范。
◾品质服务
助教、教务老师全程学习跟踪,作业答疑专属管家。
授课内容
铜级入门课程计划
1. 语言学习(编程环境配置,基本语法,编码规范)
2. 语言学习(数据类型,注释,变量,输入输出)
3. 语言学习(顺序,条件,循环,if,for,while等语句)
4. 语言学习(函数,参数,变量作用域)
5. 语言学习(数组,一维数组,二维数组)
6. 语言学习(字符串,字符数组,ASCII码表)
7. 语言学习(指针,引用)
8. 语言学习(结构体,文件操作)
9. 简单算法(进制转换,二进制算法)
10. 简单算法(高精度算法,枚举算法)
11. 简单算法(简单排序)
12. USACO比赛介绍及入门
13. USACO比赛真题讲解及练习
14. USACO比赛真题讲解及练习
银级入门课程计划
1. 数据结构与算法(链表,栈和队列)
2. 数据结构与算法(树,二叉树)
3. 数据结构与算法(贪心算法)
4. 数据结构与算法(多种排序方法)
5. 数据结构与算法(递归,搜索)
6. 数据结构与算法(前缀和)
7. 数据结构与算法(二分查找)
8. 数据结构与算法(动态规划)
9. 数论基础(质数,指数幂等)
10. USACO比赛真题讲解及练习
11. USACO比赛真题讲解及练习
12. USACO比赛真题讲解及练习
13. USACO比赛真题讲解及练习
14. USACO比赛真题讲解及练习
适合对象
◾ 初二至高三在读
◾ 对编程、算法、人工智能感兴趣
◾ 有意申请计算机、数学等专业