USACO竞赛注重算法 和运用 两方面的技能。它要求选手使用C、C++、Java、Pascal和Python这5种编程语言中的一种,编写解决题目问题的计算机程序,综合考察数据结构、算法、数学逻辑、编程等知识。
USACO 每年举办多次在线月赛,通常在 12 月, 1 月和 2 月进行, 3 月份举办公开赛。
参赛选手按照表现被划分到不同的组别:铜组、银组、金组和铂金组,新手通常从铜组开始。在月赛中取得优异成绩的选手有机会晋升到更高组别。
对于美国大学申请来说,如果学生能够拿到 USACO 的金组和铂金组奖项将是非常有说服力的。
学生可以在比赛开始时刻的任何时候访问网站,通过点击按钮来激活自己的比赛计时器,比赛时长介于3到5小时之间。一旦“开始”按钮被触发,计时器便会持续倒计时,直至时间耗尽,期间不得暂停。
每场月赛中,题目难度分为铜级、银级、金级、铂金级,难度依次提高。
新注册的选手从铜级开始,在规定的时间内完成3道题目,如果过关,可晋级到更高级别。
-
铜级:主要考察编程知识的掌握程度,排序、二分查找;
-
银级:涉及递归搜索、贪心算法等基本的问题求解技术;了解最基础的数据结构概念;
-
金级:设计更复杂的标准算法(例如最短路径,动态规划等),熟练掌握数据结构;
-
铂金级:对算法有深入了解,熟练应用,能解决复杂问题、开放问题。
对于0编程基础的同学: 建议从python开始,上手比较快。内容主要以编程语言语法,数据结构。再配合一定强度的练习,基本可通过第一轮青铜级的选拔。
对于有一定编程基础的同学:例如已经完成AP计算机课程的高中同学,可以从C或者C++入手,作为计算机底层语言,无论是应付USACO高阶比赛还是在以后学习工作中,都会有非常大的帮助。
对于非常有编程经验的选手:可以将目标放在冲击金级别以上,多加学习数据结构及算法。并以大量官方金,白金级别的真题练习作为辅助。
|