在之前的文章当中,小编介绍过美国计算机奥林匹克介绍的题型,今天就要分享一下美国计算机奥林匹克竞赛的题库。
关于美国计算机奥林匹克竞赛
USA Computing Olympiad(USACO, 美国计算机奥林匹克竞赛)是美国一项面向中学生的信息学竞赛,首次举行于1993年。USACO极为重视对算法时间效率与优化水平的考察,很多试题必须要进行非常细致的优化才能够通过。USACO支持的编程语言包括C++,Java, Pascal, Python, C。USACO初次举办于1992年,是美国中学生的官方竞赛网站,是美国著名在线题库,旨于为每年夏季举办的国际信息学奥林匹克竞赛(IOI)选拔美国队队员,最后环节的训练营或者最终代表美国队参加IOI,只有美国公民或者绿卡持有者才有机会,但是在USACO的等级可以充分证明你的编程实力。
美国计算机奥林匹克竞赛等级划分
青铜
参赛资格:一进入USACO注册账号即为铜级。
难度等级:铜级考试只要基本编程常识,会至少一种编程语言。铜级的编程限制时间还是够用的,大部分初次参赛的选手都能在第一次考试中晋级白银级。
白银
参赛资格:通过青铜级比赛的选手。
难度等级:需要基本的问题解决能力和简单算法(例如:贪心算法,递归搜索等),还需了解基础数据结构。从白银级开始,选手需要寻找更好的算法才能使程序在规定时间内跑完。
黄金
参赛资格:通过白银级比赛的选手。
难度等级:需要有一定的算法基础,理解一些抽象的方法(例:最短路径,动态规划),并且对数据结构有比较深的了解。
白金
参赛资格:通过黄金级比赛的选手。
难度等级:需要有很高的编程基础,对算法有深入的了解。部分比赛问题最后的优化方案,可能不只一个,得出的答案也不只一个。
美国计算机奥林匹克竞赛题库
USACO提供一个题库可供全世界所有的信息学竞赛选手进行训练。题库共有6个chapter,为六档难度的试题。每一个chapter中一般有4~5个section,每一个section集中介绍某一类型的试题。在section的开头一般会有一篇算法介绍,然后有4~5道试题。每一道试题都可以提交USACO服务器评测。与一般的在线评测系统不同的是,USACO不仅会告诉你评测结果,还会提供给你所有的测试数据。另外,在通过一道题之后,还会提供USACO自己撰写的题解,只是在交上去之后,你的程序并不能被保存,所以不能从上面得到你的源代码。
USACO的训练题库具有非常强的顺序性。除非将某一个section中所有试题都通过,你无法得到下一个section的算法介绍和试题。这训练了信息学竞赛选手面对棘手的问题和错误时坚持不懈的品质,但也在某种程度上为选手造成了麻烦。
USACO极为重视对算法时间效率与优化水平的考察,很多试题必须要进行非常细致的优化才能够通过。几个典型的例子如Checker Challenge, Cryptcowgraphy, Latin等。
当选手完成所有6个chapter的训练之后,可以向USACO的总教练申请开放额外的训练页进行进一步的训练。
通过美国计算机奥林匹克竞赛的题库的训练,同学们一定能够快速的提高自己的计算机水平,更好的参加比赛。
美国计算机奥林匹克竞赛课程