USACO(美国计算机奥林匹克竞赛)有必要参加吗?USACO含金量类比AMC数学竞赛是什么程度?那么USACO比赛时间/支持语言/竞赛规则/比赛级别/难度?如何报名?对于没有编程基础的学生如何备赛USACO?USACO真题领取!USACO培训机构哪家好?犀牛教育的USACO课程火热报名中.....
2022 USACO全程班/冲金班报名中,准备参赛的同学快看过来!
USACO(United States of America Computing Olympiad, 美国计算机奥林匹克竞赛) 是一项针对全世界所有的中学生计算机竞赛选手的一项竞赛。专门为信息学竞赛选手准备,但必须在注册后才能进入题库。这项赛事不仅可以培养学生的算法和编程思维,好的竞赛成绩还能给孩子大学申请加分。
这张给出了USACO等级对应的数学奥林匹克竞赛等级,很多偏理科的大学都会要求AMC(美国数学竞赛)成绩,如果你有对应的USACO成绩,大学是非常认可的。
1.能力证明。作为五大奥林匹克竞赛之一,其能力是被全球认可的,与之配套的知名国际竞赛体系也非常完善。最知名的国际竞赛包括 IOI(国际信息学奥林匹克竞赛)和 ICPC(国际大学生程序设计竞赛),而USACO是美国国家级别的竞赛,其目的就是要为 IOI 和 ICPC 输送人才,虽然很多国家都有类似的国内竞赛,但相比而言,USACO 是得到美国知名大学认可的,更有含金量。
2.思维训练和能力提升。接受一个编程项目,独立思考相关知识点(数学逻辑、数据结构、算法、计算机体系结构、英语理解等),运用各种能力(计算思维、资料收集、刻意练习)设计并实现,验证正确性,反复迭代修正。
USACO 一般是每年12 月份开始进行,会选择四个周末举办主要的比赛,从周五到周一,在这个时间段内学生可以选择在任何时间比赛,通常来说每次竞赛的时间为4个小时,但有时候是3个小时或者5个小时。
USACO 接受多种语言的解决方案,包括 C++,C,Java 和 Python。由于Java 和 Python 相比于 C++/C语言运行的会慢一些,所以这两种语言所允许的运行时间是 C++ 和 C 的两倍。USACO 提供了更加灵活的支持,使得比较喜欢 Java 和 Python 的人也有机会参与到算法竞赛中。
USACO每场比赛4-5个小时。可以在比赛规定时间开始后登陆USACO账号,从在线打开试题后开始计时。一套试题中有三道题。选手需要在时间结束前通过网络将写好的程序提交。程序提交后官网会给出用test case检测程序的结果,并根据结果给出这一题的得分。可以使用C++,Java,Python,和C中的任意一种编程。比赛对于程序的大小,运行需要的内存以及运行的时间都有一些具体规定。
每次比赛,实力强的选手可以连续升级。在比赛窗口开放的三天时间内,选手可以选择任意时间开始比赛。开始比赛4小时内,如果拿到了高分(接近满分或满分),系统会提示直接晋级,可以在这三天内继续挑战下一级,只要实力足够,一场考试可以升到满级白金级。没能拿到满分的选手需要等到三天的赛程结束后,等待晋级分数线,才能决定是否晋级,如果成功晋级,可以在一个月后的第二场继续参赛晋级。
青铜
参赛资格:一进入USACO注册账号即为铜级。
难度等级:铜级考试只要基本编程常识,会至少一种编程语言。铜级的编程限制时间还是够用的,大部分初次参赛的选手都能在第一次考试中晋级白银级。
白银
参赛资格:通过青铜级比赛的选手。
难度等级:需要基本的问题解决能力和简单算法(例如:贪心算法,递归搜索等),还需了解基础数据结构。从白银级开始,选手需要寻找更好的算法才能使程序在规定时间内跑完。
黄金
参赛资格:通过白银级比赛的选手。
难度等级:需要有一定的算法基础,理解一些抽象的方法(例:最短路径,动态规划),并且对数据结构有比较深的了解。
白金
参赛资格:通过黄金级比赛的选手。
难度等级:需要有很高的编程基础,对算法有深入的了解。部分比赛问题最后的优化方案,可能不只一个,得出的答案也不只一个。
在www.usaco.org 注册一个免费账户(只需要有邮箱就能注册),注册时不需要选定特定的比赛日期,只要有了这个账户,可以在比赛开始后随时参与竞赛。
看了每个级别的考试的参赛的人数,那么有多少人能够考过?在2019~2020赛季, Bronze 过的人数比较多,通过率大概在19%左右。到了去年和今年,就在10%出头以及15%左右。
综合来看,过去三年 Bronze 通过率就在15%左右。
Silver 在前年也就是2019~2020赛季,是在5%;在2020~2021赛季是6%左右;到今年的话也是有所降低。
而 Gold 的通过率大概在 2% 到 3% 左右。
题目的难度也是在逐渐增加。尤其是在今年,我们明显感觉到有个别题目原来应该出现在 Gold 这个级别,但现在开始出现在 Silver 这个级别的最难那道题。
Gold 那就更不必说,在两年前 Gold 和 Bronze 以及 Silver 类似,是偏知识性的这种级别,只要把知识点学过了,那么孩子就能够比较舒服的通过 Gold,当然也要做适当的练习。但是从去年开始包括今年,我们明显发现 Gold 题目出现了更多的套路,需要孩子投入更多的时间来做模拟测试,然后做更多练习。
1.对于没有编程基础的学生如何备赛?
建议从python或者java入手,上手较快。学习主要内容为数据结构,编程语法,配合一定强度的练习,可以初步通过第一轮铜级的选拔。
2.对于有部分编程基础的学生如何备赛?
比如在读AP计算机的高一高二同学可以从C++或者C入手。作为编程语言中强大且基础的两门,无论是应付比赛还是在以后读本科或者工作中使用,提前学习C++和C都是不错的选择。
3.对于有编程基础及编程经验的学生如何备赛?比如参加过国内NOI的同学,设定的目标可以直接冲击至少金级别以上的奖项。
在有数据结构和编程语法的前提下,需要系统的学习一些常见算法,比如排序等等。同时大量练习官方的金,白金级别的真题。

|