2023-2024年USACO计算机竞赛发布新规则!更有新的防作弊措施,有备考打算的同学们一定要提前熟悉。
在MIT本科招生官网中,我们可以看到USACO是被“点名”推荐的课外活动,同时它也承担着为美国国家队选拔进入国际信息学奥林匹克(IOI)的重任。
对于申请计算机/编程方向的学生来说,USACO不仅培养学生的算法及应用和编程思维,成绩含金量也不言而喻,获得金级、白金级的参赛者将大大增加被藤校录取的概率!
那么不同基础的孩子如何学习呢?感兴趣的家长和同学们接着看下去吧。
USACO官方明确,在比赛期间禁止生成人工智能,并且不允许美国学生使用VPN 来隐藏自己的IP地址。
白金级别参赛学生要求同一时间参加竞赛,时间为统一周六中午开始,与此同时白金级别的题目开始发布。周六开始参加比赛的铂金级别学生,将会更受USACO竞赛官方认可,有更大几率会被邀请至训练营,参与选拔IOI国家队选手。
通用赛制
适合学生:任意年级中学生。
编程语言:可使用以下任意一种编程语言C、C++,Java,Python;
活动形式:在活动窗口开放的3天时间内,选择任意时间开始做题,每场比赛3-5个小时,在线打开试题后开始计时。
晋级方式:如果获得满分会直接晋级,否则将在比赛结束后根据分数线划分是否晋级。
铜级:熟知基本编程知识,会至少一种编程语言。大多数铜级问题没有像高级别那样有很多效率问题。知道如何正确阅读理解题意,设计一个算法来解决问题。准确地把算法翻译成计算机代码是奥信铜级训练的中心。
银级:在铜级中用到的工具之外,数据结构包括堆、栈、列表、树以及相对应的排序、搜索算法将被引入并广泛应用。一般的简单方法(比如穷举法)将不再适用银级比赛,算法的效率和复杂度将开始成为重心。
金级:基本的数据结构诸于列表、堆、栈、集合、关联数组和相关的算法将普遍应用,更复杂的数据结构包括树和图的算法,以及动态规划、数论和排列组合也将被广泛采用。
铂金级:对算法有深入了解,能解决复杂问题、开放问题。题目复合多种算法,还会涉及高难度辅助算法,不但思维难度大,编码工作量也在加大。
竞赛语言:USACO 接受多种语言的解决方案,包括 C++,C,Java 和 Python。由于Java 和 Python 相比于 C++/C 语言运行的会慢一些,所以这两种语言所允许的运行时间是 C++ 和 C 的两倍。
相比于国内 NOIP 只接受 C++ 作为考试语言,USACO 提供了更加灵活的支持,使得比较喜欢 Java 和 Python 的人也有机会参与到算法竞赛中。
(中国的孩子可以参加全部月赛和公开赛)
① USACO前3场晋级赛每场4个小时,US Open 5个小时。可以在比赛规定时间内使用USACO账号登陆,在线打开赛题后开始计时。选手需要在时间结束前通过网络将写好的程序提交。
② 程序提交后考试系统会给出评测结果。可以使用C++,Java,Python,Pascal,和C中的任意一种编程语言。对于后续有志于冲刺Camp的选手来说,建议一开始就选择C++语言,避免后续更换编程语言。
③ 每场比赛达到一定分数,一般是满分,可直接晋级到下个级别继续参赛。因此理论上,咱们同学如果实力足够强,即使到了12 年级开始参赛,在12月赛中也有可能从铜级一直晋升到铂金级。不过对于有志于冲刺Camp的同学,最晚要 11 年级参赛才有可能。
学习主要内容为数据结构,编程语法,配合一定强度的练习,可以初步通过第一轮铜级的选拔。
比如在读AP计算机的高一高二同学可以从C++或者C入手。
作为编程语言中强大且基础的两门,无论是应付比赛还是在以后读本科或者工作中使用,提前学习C++和C都是不错的选择。
比如参加过国内NOI的同学,设定的目标可以直接冲击至少金级别以上的奖项。
在有数据结构和编程语法的前提下,需要系统的学习一些常见算法,比如排序等等。同时大量练习官方的金,白金级别的真题。
总而言之,USACO是不仅仅是一项可以让申请者提高学术背景的比赛,编程本身作为一门使用技能也会让学理工科的学生受益终生!