美国计算机编程算法竞赛USACO竞赛(http://www.usaco.org)是一个电脑编程以及算法竞赛。为每年的国际计算机竞赛 IOI(Informatics Olympiad International)选拔美国队队员。
计算机奥赛(USACO)与数学奥赛(USAMO),都是国家 National 级别的奥赛,是美国国家队选拔赛。参加两个国际奥林匹克赛的美国选手是通过这两个全国比赛层层选拔出来的。AMC 考察数学,USACO 考察编程和算法。USAMO 的参加的学生很多,相对参加 USACO 的要少些。因为参加人数不是太多,比数学竞赛更容易入围进级。
USACO 和 AMC 难度对比: AMC10≈USACO Bronze(青铜) AMC12≈USACO Silver(白银) AIME≈USACO Gold(黄金) USAMO≈USACO Platinum(铂金)
USACO 是一个“算法”竞赛,这意味着参赛者需要用创造和系统的方法来解决问题,而不仅仅是直接把程序的描述直接转换成代码。例如,“找出列表里面最大数字的位置”是一个非常简单的算法问题,但“写出先画一个圆圈,再画一个正方形的指令”就是另外一回事了。
通过登录USACO官网,在线提交代码的形式参赛。在比赛规定的时间范围内(通常是 4 天,期间覆盖一个周末),你可以选择一个适合的时间参赛。竞赛不允许有任何外部帮助和合作。一旦比赛开始,你有 3-4 个小时的时间查看和解决 3 个独立的编程问题。在线打开题目,在线提交代码。代码提交后,系统会自动给出评分。
如果拿到了满分,系统会提示直接晋级,你可以在本次月赛中继续挑战更高难度的试题。一般情况下,月赛考试结束后,会划出晋级分数线。如果成功晋级,你可以在下个月的比赛中参加更高级别的竞赛。
所有 3 个编程问题的分值都是 333.333 分,总分是 1000 分。对于每个问题,分数在每个测试案例中平均分配。如果问题 1 有 10 个测试案例,问题 2 有 11 个,问题 3 有 12 个测试案例,那么问题 1 的每个测试案例价值 33.33 分,问题 2 的每个测试案例价值 30 分,而问题 3 的每个测试案例价值 27.77 分。
注册 USACO 也很简单,只需要在 http://www.usaco.org 注册一个免费账户,注册时你不需要选择特定的比赛日期。只要你有了这个账户,可以在比赛日期随时参与竞赛。USACO 竞赛是完全免费的!你只需要注册一个账户,就可以参加比赛了。USACO 解题绝对不可以在网上复制别人的代码!不要复制抄袭,一经发现永久封号。
12 月月赛、1 月月赛、2 月月赛和 3 月公开赛,每个赛季都有不同的挑战和机会。前三场比赛的形式相同,具体时间请查看 USACO 网站的主页最新发布。
USACO 12 月考试是 4 次中最容易的一次,秋季班冲刺至关重要。错过了要等一年,考题每年难度都在大幅度提升,考试形式也可能变化。12 月的月赛通常是圣诞前的一个周末,当场出成绩,一周内放榜,也非常适合在 RD 的截止前冲击申请材料的最后一个闪光点。1,2 月份的成绩也可以作为申请递交完毕最好的补充材料 。
USACO 竞赛有 4 个级别,铜级,银级,金级,白金级。每个级别代表不同的编程技能水平。在每场月赛中,题目难度分为铜级、银级、金级、铂金级四种级别,难度依次提高。新注册的选手从铜级开始,在规定的时间内完成 3 道题目,如果过关,可晋级到更高级别。
每个人都必须从铜级开始参赛。在每个 USACO 比赛中,每个技能水平都有一个比赛(例如,银级选手不会和铜级选手参加同一个比赛)。以下是每个级别的编程比赛中你需要知道的内容/如何通过每个级别的编程比赛。
铜级:是 USACO 的基础级别。主要考察编程知识的掌握程度,排序、二分查找。大多数铜级问题没有像高级别的那样有很多效率问题。要能够解释一个编程问题。知道/能够创建基本算法和逻辑。循环,数组,内部算法,知道/能够将自己的想法转化为代码。
银级:银级考试比铜级考试要难得多。涉及递归搜索、贪心算法等基本的问题求解技术;了解最基础的数据结构概念, 要考察效率问题。
金级:设计更复杂的标准算法(例如最短路径,动态规划等),熟练掌握数据结构, 主要考察效率问题。
铂金级:对算法有深入了解,熟练应用,能解决复杂问题、开放问题。
你可以使用以下编程语言参加 USACO 竞赛:Java、C++ 17、C++ 11、C、Python 2 (2.7.17)、Python 3 (3.6.9)。
C++ 是奥计考试的主选语言之一,起步难但程序紧凑效率高,适合金级以上考生利用网上资料自学自修。C++是高效编程语言,网上有很多资料,适合金级白金级自学,但语言难学,初学者进步很慢。
Java 是奥计考试的主选语言之一,易学易升级,又可以拿到 APComputer 高分。
Python 是奥计考试的主选语言之一,易学易考,适合人工智能和机器学习,是当今的大热门。
USACO 系统自动评分。测试案例的数量会因问题而异(通常为 10 个左右)。每个测试案例都有相等的分值,所有测试案例的总分值为 333 分。有时,较早的测试用例在其所需的时间复杂度方面会明显容易。这意味着,如果你的代码效率很低,它应该仍然能够获得前几个测试用例的部分积分。重新提交没有任何惩罚。
但是,如果你多次提交,你提交的最后一次(不是最好的)将被算作你的分数。如果你的程序不能编译,缺少输出,或有运行时错误,提交将失败(将不被评分),你将被告知错误。在评分开始前,你的程序也必须首先获得样本案例的正确性。
一旦你的程序通过了初始编译和样本测试案例,它将针对所有的测试案例运行。对于导致测试用例失败的原因,有几个可能性:
T:超时(在 Java 和 Python 中为你提供 4 秒,在其他语言中为你的代码成功运行并返回解决方案提供 2 秒)。
❗️: 运行时错误(典型的运行时错误,但也包括超过内存限制,这很罕见,但可能发生)
❌:错误的答案(你对测试案例的答案是不正确的)
如果你能在比赛中得到 1000/1000 分(通过每一个测试案例),你就会得到一个比赛中的晋升。(获得赛中晋级的分数有时会低于 1000 分,不过这种情况非常罕见)。这意味着你可以在当前 4 天的竞赛窗口中开始下一级的竞赛(你不必等待窗口结束来获得晋升。)
否则,你必须等到窗口结束后才能晋级。USACO 将根据比赛结果计算出截止分数,如果你的分数高于截止分数,你将被提升到下一个级别。根据不同的比赛,高于 750 分或 800 分的分数通常会让你晋升。
然而,作为 USACO 全国锦标赛的美国公开赛有一些小的区别(其他方面都是一样的)。问题的难度要大得多。比赛时间多 1 小时。
USACO 是美国大学申请过程中非常有含金量和竞争力的一个 STEM 竞赛。USACO 还有一个更大的好处在于,实用性很广,实战性很强。就算不参加奥林匹克比赛。
USACO 也能够帮助孩子在最短的时间内,有效的提高和掌握电脑编程语言,增加电脑技能。对孩子将来的发展有更深远的影响和帮助。随着 STEM 教育的理念,及编程低龄化,普及化的发展,USACO 的参赛人数和热度越来越高。
USACO 是不仅仅是一项可以让申请者迅速提高 STEM,编程算法学术背景的比赛,编程本身作为一门使用技能也会让学理工科的学生受益终生,即便是商科文科的同学,编程训练本身带来的思维优势也可以极大的促进学习。
因为大量的中国学生热衷于参加热门的美国数学奥赛、美国化学奥赛,所以 USACO 在中国的普及度并不高。这意味着参赛选手少,获奖选手也少,含金量自然更高。
2024-2025年USACO竞赛将在12月份开赛,距离比赛还有半年时间,那么对于零基础或者编程基础较弱的学生,建议大家留有足够的时间备考复习。
考拉USACO竞赛培训课程开设USACO竞赛直通车,USACO铜升银培训,USACO竞赛银升金培训,USACO金升铂金培训班,由专业计算机方向团队老师授课,支持中英文/全英授课,我们老师带领学生也在过往赛季中取得了不错的成绩!
USACO班级类型:3-8人小班/一对一
USACO授课语言:中英双语/全英文都可以,满足不同学生需求
USACO上课形式:线上线下均可选择,灵活方便
课程类型:小班 / 一对一
授课模式:线上线下同步开课,可回放不断学习。
授课语言:中英双语教学 / 纯英文授课


考拉目前在:上海、北京、杭州、深圳、广州、南京、苏州、无锡、青岛、合肥、武汉、成都、济南、郑州等地均有线下校区。
线上线下同步上课,小班教学,课后答疑一应俱全!
USACO竞赛课程
您添加微信小助手在线咨询
|