USACO计算机竞赛金奖备考经验

个人学习和背景介绍

大家好,我在去年取得了AP CSA五分的好成绩,在USACO中达到了Gold Deviation,参加过各种国内外科技竞赛,获得了如未来软件工程师竞赛的一等奖、Microsoft Future Image Cup的中国区TOP30、第二届交大长三角AI竞赛二等奖等。

同时也参加过我的世界某一工作室的插件开发,不论是实战还是竞赛,本人对于计算机科学也是有较多的见解啦,而今天呢想和大家分享一下USACO的备考经验

USACO金奖er备赛经验公开!青铜到白金原来是这样练成的?

USACO是什么比赛?

美国计算机奥林匹克竞赛(USA Computing Olympiad,简称USACO)是由美国官方举办的中学生计算机编程与算法线上比赛,也是誉满全美的中学生计算机编程竞赛。

USACO于1992年首次举办,目前已成功举办27次。旨在为每年夏季举办的国际信息学奥林匹克竞赛(IOI)选拔美国队队员,目前逐渐发展为全球热门的线上赛事,和奥数IMO一样,成为美国大学申请条件下,含金量相当高的官方竞赛。

USACO有四个竞赛 Divisions级别,Bronze, Silver, Gold,和Platinum。所有参赛者都是从铜级赛区开始的。在每个比赛赛周之后,如果参赛者有足够高的分数就会被“promoted”到下一个级别--通常是600-800分(满分1000分)。

你还可以在contest weekend中所有问题获得满分直接获得晋升。每一组都比前一组困难得多。这通常需要相当多的学习、训练,试图提升到一个新的水平需要耗费的时间,每一个等级长达一年或更长时间。

USACO在2015年增加了Platinum级别。在此之前,每一个division的难度都比现在大,大约相当于今天的division“one step up”。例如,一般来说,“old Bronze”问题最接近“modern Silver”问题的难度。

比赛含金量如何?

申请美国大学有帮助的活动中,USACO第一项就强调:

USACO金奖er备赛经验公开!青铜到白金原来是这样练成的?

近几年,STEM教育的理念及编程低龄化,普及化的发展迅猛,USACO的参赛人数和热度越来越高。对于未来美本留学申请理工科专业的高中生来说,USACO能够获得金或者白金级别的奖项,绝对是提高竞争力的大杀器。

当然,USACO也是美国大学申请过程中非常非常有含金量和竞争力的一个竞赛。因为大量的中国学生热衷于参加热门的美国数学奥赛、美国化学奥赛,所以USACO在中国的普及度并不高。如果你参加并且获奖了,能为你的简历加分不少,在中国申请者中脱颖而出。

USACO报名与参赛步骤

登录USACO官网http://www.usaco.org/,点击Register for New Account按钮,注册新账户。

USACO官网:

USACO金奖er备赛经验公开!青铜到白金原来是这样练成的?

 填写信息并激活账号(Complete information and activate)

USACO金奖er备赛经验公开!青铜到白金原来是这样练成的?

注册结束后,在绑定的邮件中查收自己的账号和默认密码。并登陆官网(24小时内首次登陆方可激活,登录后可修改密码),并点击“Login”。

竞赛考察的知识点整体介绍

青铜级

参赛资格: 注USACO账号即为青铜级

青铜级考试只要求掌握基本编程常识,会至少一种编程语言。青铜级的编程限制时间还是充足的,只要掌握基础的编程技能,大部分选手都能在第一次考试中晋级白银级。

C++语言基础

高精度算法

链表,堆,栈,队列

搜索算法

排序与集合 map,set,

algorithm库

greedy贪心思想

计算几何入门

白银级

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

需要掌握基本的问题解决能力和简单算法 (例如: 贪心算法,递归搜索等) ,还需了解基础数据结构。从白银级开始,选手需要寻找更好的算法才能使程序在规定时间内跑完。

二分与分治

排序算法

贪心算法进阶

分治,排序与贪心

搜索进阶

递推与前缀和

图论基本概念

基本连通性问题

树,树上计数问题

黄金级

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

需要有一定的算法基础,理解一些抽象的方法(例: 最短路径,动态规划) ,并且对数据结构有比较深的了解。

白金级

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

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

数论基础

简单字符串

动态规划入门

动态规划进阶

最短路

最小生成树连通性问题

线性数据结构

线段树

赛前需要了解的内容

比赛形式

提交的3-4个程序中的每一个都要对10个或更多的“test cases”进行测试——用已知的结果输入程序中的数据集。您可以为每个给出正确结果的测试用例获得学分。在一个contest weekend的比赛中,一个组别的所有问题总共有1000分。如果您的程序运行时间太长,占用太多内存,或者崩溃,那么您将在测试用例中失去分数,因此代码的效率是一个因素!这在Silver及以上级别的赛组中尤其突出。

比赛的计时形式是什么?

在赛周的任何时候,进入网站并点击按钮启动你的个人比赛计时器,时间为3-5个小时。出发前你会被告知确切的时间限制,通常是4小时。然后,选手将获得竞赛问题的访问权限。

可以休息或提前停止,但一旦你在那个周末点击了“开始”按钮,你的时间就会一直在滴答作响,直到到期--不允许暂停。如果你只是想检查一下题目,那么你可以随意花时间尝试它,想花多少时间就花多少时间。如果你的目标是做好,试着提前计划一整段时间,这样你就可以不分心地工作了。

比赛开始后会发生什么?

在启动计时器后,会被允许回答3-4个问题(通常是3个),选手必须在个人时间窗口中解决。每一个都将提供一个背景问题,必须编写一个程序进行分析。在选手的时间窗口内的任何时候,都可以通过网站提交您的程序进行测试。选手可以在时间窗口内自由切换或返回到任何问题,并继续提交解决方案,直到时间截止或者选手觉得已经全部完美为止。可以选择在同一周末的任何时间使用新的计时器开始新部门的比赛。

不同等级的同学学习⽅法介绍&分享

没有编程基础的同学如何备考?

建议从Python或者Java入手,上手较快。可以选择先自学,学习主要内容为数据结构,编程语法,配合一定强度的练习和老师讲解,可以初步通过第一轮铜级的选拔。

有编程基础的同学如何备考?

在读AP计算机的高一高二同学,或者学习过Python的同学,可以从C/C++或者Python入手,学习算法知识,加强算法练习和真题训练。

有相关参赛经验的同学如何备考?

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

⽐赛特点

免费,货真价实,简单

免费:这个比赛不需要任何额外的费用,这就意味着你可以免费的参加这个比赛很多次,无需要有额外的经济负担

货真价实:这个比赛的含金量如上文所说其实非常之高,比赛的付出与收入是成正比的,有了付出就一定会在这个比赛当中获得比较好的成果!

简单:只要你有一台能上网的电脑就足够,不需要再额外的购买其他外设来参加比赛

竞赛参考资料

USACO官网

需要初步认知这个竞赛,建议首先在USACO官网上回顾过去的比赛,该网站提供了一系列竞赛材料。这种比赛风格通常被称为“online judge”系统,你可以通过在线搜索找到许多例子。USACO官方还提供其他链接和资源的列表。

USACO金奖er备赛经验公开!青铜到白金原来是这样练成的?

USACO书单推荐

书名:Competitive Programming 1-5

介绍:可以迅速提升自己的竞赛硬实力,了解一些基本算法以及一些基本答题思路,可以说是入门必选。

USACO在线资源

https://usaco.guide/

一群敬业的前决赛选手汇集了一个新的在线培训资源。免费收集精选的高质量资源,带您从青铜级到白金级及更高级别。

https://www.geeksforgeeks.org海外算法学习网站

https://www.commonlounge.com/community/e4aac00a033a40ec96657906c6e1b43c/main为1OI做准备和练习 + 在竞争性编程方面做得更好 + 通过动画和视频以有趣的方式学习算法。

http://codeforces.com/blog/entry/23054博客条目中提供了更多在线参考资料的出色列表

https://starcoder.org从基本编码到 USACO 竞争性编程

以上就是本次对USACO竞赛的介绍以及分享啦,谢谢大家!

【竞赛报名/项目咨询请加微信:mollywei007】

上一篇

芝加哥大学教授推荐书籍

下一篇

英国电子电气工程专业TOP10大学及申请要求

你也可能喜欢

  • 暂无相关文章!

评论已经被关闭。

插入图片
返回顶部