理工科专业一向是亚裔学生的强项,老人们也常说:“学好数理化,走遍天下都不怕。” 在之前的文章里我们介绍过了许多关于数学的竞赛,如袋鼠数学竞赛、奥林匹克数学竞赛、AMC数学竞赛等。那么今天笔者就要为大家介绍另一项亚裔学生极其突出的竞赛:计算机奥林匹克竞赛。
计算机奥林匹克的全称是USA Computing Olympiad,简称USACO。最早举办于1993年,是一项面向美国中学生的信息学竞赛。一般来说USACO在每年的12,1,2,3,4月份会组织月赛,一月一次,其中4月份是公开赛。每一场月赛都会有4组构成,分别是铜(Bronze)、银(Silver)、金(Gold)、铂金(Platinum),难度依次递增。进入更高一组一般有两种方式:在10月份的资格赛中取得较好的成绩,或者在某一次月赛中取得该组领先的地位。一般来说选手不会被降组。
通常情况下一次比赛的时间为3~4小时,选手需要完成3~4道题目。选手可以在该次月赛指定的时间范围(通常是4天)中的任何一个时间打开题目,并在规定的时间内完成比赛并提交。细心的朋友们也许会想到:是否我们可以先用一个帐户打开题目阅读,等一切就绪、胸有成竹之后再使用另一个帐户完成题目提交呢,这样子就绕过了时间的限制。很遗憾,这样的行为被明确定义为作弊。另外,在比赛结束之前泄露、发布题目被认为是不妥当的。
月赛的题目与IOI(国际信息学奥林匹克竞赛)试题类型大致相同,绝大多数为传统试题。也就是参赛选手要为每一道题目编写一个程序,并在比赛结束之前提交。随后大赛的主办方将采用若干组测试数据对程序进行测试。但也有少数情况下出现过提交答案类型试题,即在比赛中参赛选手将获得各组测试数据,他们要提交的是相应的计算结果,而非程序本身。这就意味着选手除了可以通过编写程序外,也可以通过手工计算或者两者结合甚至盲猜来完成这类题目。
月赛结束后的1~2天内,选手可以通过电子邮件收到自己程序的评测结果。同时在比赛相应的页面上,可以找到测试数据、题解、所有参赛选手的程序代码、所有参赛选手的成绩总表以及对比赛的简要分析、统计与总结。
作为一项影响力巨大的竞赛,优异的USACO成绩是名校的敲门砖。尤其在现在这个时代,CS(计算机科学)已经是著名的霸王专业,每年申请CS专业的学生数不胜数,而想要在其中脱颖而出,一份优秀的USACO成绩毫无疑问会极大地吸引招生官的注意。当然,也正因为它的价值,近年来参加USACO竞赛的学生以每年 30% 的速度快速增长。
值得一提的是,尽管发起和主办方都为美国,但是USACO已经成长为全球性的竞赛,每年有70多个国家的选手参加USACO竞赛。美国考生占全部参赛选手的50%左右,中国大陆的选手占20%以上,其余的选手来自70多个国家。由于华人学生在计算机科目上出色的天赋,参加USACO竞赛的选手大约有60% 以上是美国和世界各地的华人学生。无论是为了给大学申请加分或是锻炼自身的计算机能力,参加USACO对于华人学生来说都是十分必要的。