USACO(United States of America Computing Olypiad), 即美国计算机奥林匹克竞赛,全球小学生、初中生、高中生均可参与,且无需任何费用。优胜者可代表美国队参加每年夏季举办的国际信息学奥林匹克竞赛(lOl)。
USACO竞赛注重算法和运用两方面的技能。它要求选手使用C、C++、Java、Pascal和Python这5种编程语言中的一种,编写解决题目问题的计算机程序,综合考察数据结构、算法、数学逻辑、编程等知识。
#01.
考试形式
USACO有四个竞赛 Divisions级别:Bronze, Silver, Gold,和Platinum。
每年四次考试,每次在周末举行比赛,大概四天时间,通常是周五到周一。选手可以灵活选择比赛开始时间,并在规定的四小时内和在四天截止日期结束前完成比赛并提交答案。
熟知基本编程知识,会至少一种编程语言。大多数铜级问题没有像高级别那样有很多效率问题。知道如何正确阅读理解题意,设计一个算法来解决问题。准确地把算法翻译成计算机代码是奥信铜级训练的中心。
在铜级中用到的工具之外,数据结构包括堆、栈、列表、树以及相对应的排序、搜索算法将被引入并广泛应用。一般的简单方法(比如穷举法)将不再适用银级比赛,算法的效率和复杂度将开始成为重心。
基本的数据结构诸于列表、堆、栈、集合、关联数组和相关的算法将普遍应用,更复杂的数据结构包括树和图的算法,以及动态规划、数论和排列组合也将被广泛采用。
对算法有深入了解,能解决复杂问题、开放问题。题目复合多种算法,还会涉及高难度辅助算法,不但思维难度大,编码工作量也在加大。
#02.
月赛时间表
第一场月赛:12月17日-12月20日
第二场月赛:1月28日-1月31日
第三场月赛:2月25日-2月28日

🔺参赛对象:任意年级初高中生
🔺考试地点:线上比赛,个人参赛,通过登录USACO官网,在线提交代码
🔺比赛语言:C、C++、Java 或 Python
🔺参赛费用:比赛参与是完全免费的
🔺评分要求:
a.代码运行正确性
-
铜组升级到银组需要掌握基本编程常识,至少会一种编程语言,需要问题解决能力和简单算法;
-
银组升级到金组需要理解抽象方法,例如最短路径和动态规划,掌握特定算法,有优化意识,通过数学和逻辑方法找到最优解;
-
金组升级到铂金组则需要掌握更深入的算法知识,难度相对较高。
▶ USACO等级对应的数学奥林匹克竞赛等级,许多偏理科的大学都会要求AIME成绩。有对应的USACO成绩,大学也会认可。也有许多理科类美国大学会要求申请者有AMC成绩,USACO和AMC同样可以起到类似作用。
在MIT(麻省理工学院)本科招生官网中,可以赫然看到USACO是被“点名”推荐的课外活动。
▶ USACO涵盖了学生通常在计算机科学学士学位的前两年学习的高级材料,所展示的计算机能力足以吸引大学招生官。如果选手能在USACO的比赛中拿到黄金及以上的奖项,对于申请美国理工科专业的学生是一个极大的帮助。
▶ USACO不仅在美国大学中认可度高,在美国国内参与度广,而且在全球也具有比较广泛的参与度。上赛季首场比赛参赛人数达到10752人,同比增长了40%!
USACO考试,官网注册即可,注册 = 报名,规定时间内参赛即可。报名不收取任何费用。
1. 考生直接登录USACO官网http://www.usaco.org/
右侧点击Register for New Account
注意:密码将立即通过电子邮件发送给您(如果您没有立即看到它,请检查您的垃圾邮件文件夹)。您可以稍后通过编辑账户详细信息来更改密码。
请输入您的真实姓名,因为这是我们在比赛结果中识别您的方式。虚假或不可接受的个人姓名将不会收到比赛结果,并可能随时被删除,恕不另行通知!
⭐USACO 考试流程
1. 注册账号
登录USACO官网:http://www.usaco.org/,点击Register for New Account按钮,注册新账户。
USACO官网:

2. 填写信息并激活账号
注册后按照下图指引填写信息:

注册结束后,在绑定的邮件中查收自己的账号和默认密码。并如下图登录官网(24小时内首次登录方可激活,登录后可修改密码),并点击“Login”。
3. 开始比赛
选手需要在比赛开放期间进入竞赛页面参与比赛。点击“Start the Contest!”键即可开始比赛。选手的比赛用时就会立即倒计时,且无法暂停。

进入题目后,点击红框处选择Chinese(zh),可以切换题目语言为中文:

4. 提交答案
完成之后就可以提交啦!比赛时需要按要求在自己的编程环境(例如DEV-C++)中完成题目,并提交cpp文件。
比赛会在时限过后自动结束(如已经获得满分,则可以手动提前结束),只需在比赛结束前确保提交过已经完成的题目即可。