USACO竞赛Silver Level学生冲到 Gold Level要多久?

请问 Silver Level 的学生冲到 Gold Level,需要多少时间的投入,都有哪些有效的学习方法?

借由这个好问题,我可以把不同的级别都要怎么准备,和大致考什么东西来系统的讲一讲。这样的话相信可以回答不止一位家长的问题。

首先,Bronze 这个级别在考什么?主要两种东西,一种是simulation,第二种就是 brute force,然后另外加上一些observation。Bronze 这个级别要求学生掌握基本的 brute force 一些算法,比如说深度优先搜索和广度优先搜索,再加上对于代码有基本的调试能力,此外,还有孩子比较容易忽视的阅读理解能力。

USACO 题目有的时候是很长的,看上去整整一页,像在讲一个故事,在这个故事讲完之后,孩子去做的事情,其实是把这个故事抽象成一个带有条件的 problem to solve。这个时候需要孩子有比较强的抽取信息能力,然后把这些信息转化为条件;把条件进行分析之后,先在纸面上完成对问题的一个求解,再去写代码。这里很重要一点就是阅读理解,还要通过 sample test case 就是测试样例,来做一个验证,如果不做这一步验证的话,有时候孩子做了半个小时,可能突然发现题目看错了。我们自己的学生也经常发现这种情况,尤其是年龄比较小的孩子,考试时往往非常激动,就容易犯这种错误。

在 机构 内部,通常上过201、202 课程之后,学生比较有把握参加 Bronze 考试,当然最好是在经历一些模考的训练,做一些 reading comprehension 阅读理解的训练,并且感受一下在模考环境之下的压力,这个也就是我们 USACO辅导课程 的一个重要性所在,等下我会系统讲我们为什么会有一个 USACO辅导课程。

接着,Silver 这个级别考什么?

通常有4个比较重要的 topics,第一个是叫 two pointer,第二个就是 sweep line,第三个是binary search on answer。四第四个的话是什么?第四个是 prefix sum + graph + simple dp。

去年我们发现,以前只会在 Gold 里面出现的问题,开始出现在 Silver 考试中,会有一些 graph题目以及简单的 DP, DP 就是 dynamic programming。Silver 这个级别,会发现算法已经不再是简单的代码了,它需要学生能够写50~100行的代码,甚至可能超过100行,也对于孩子的代码能力和调试代码的能力提出了更高的要求,同时对孩子的建模能力也提出了进一步的要求。

在 机构,如果同学们要通过 silver 考试,那么需要完成每节课都布置的作业,除了作业之外,还需要参加模考,在模考时能够把具体题目转化成某一种模型,这样的话才会有比较稳定的发挥。

Silver 总体来说,还是一个偏知识性的级别,和 Bronze 是差不多的,也就是说上完课之后再做一些 Enhancement 目的的模考,模考的话也没有要求特别巨量。相对来讲,练到一定程度,是一个水到渠成就能考过的级别,因为 Bronze 和 Silver 这两个级别都是偏知识的级别。我们的推荐是不要太过于注重孩子什么时候通过这俩级别,而是 focus 在知识点的掌握上,尤其是孩子年龄较小的情况下。

如果孩子年龄大一些,比如十年级了,那么要把时间更多的 focus 在怎么样去通过这些考试上,具体要做的就是把知识点先学会,如果来 机构,那么推荐参加 USACO辅导课程 多做一些 mock Tests,孩子年龄比较大了之后,对 Mock Test 的抗压能力会好一些。

另外因为备考时间有限,学生需要从有限的时间里获得更有效的提升,那么 take Weekend Mock Test,每次考完之后去做完订正,这样的话提高是最快的。

再往上走就是 Gold Level。

Gold 考什么?

考的是几个比较大的 Topic,一个是 graph theory,第二是 math,第三个是DP,第四个 range query,第五还有 misc,string 以及偏 data structure 的内容比如 tree。但通常来讲是结合前 4 个 topic 在考,这4个topic都是非常广阔的领域,比如说 graph,虽然是一个单词,但包含着至少十几个小的 sub topic。

DP 仅基本的类型就有将近10个,每个类型下面,根据不同的问题结构,它展可以展开的问题就更多了。这些 Topics 有什么特点呢?就是变化特别多,基本上没有一种方法可以穷举完,或者说光靠漫无目的的刷题是很难的。此外,这两年的 Gold 竞赛变得特别难。难到什么程度?最近两年每一场考试,Gold 通过人数大概是 20 多人,个别考试像 US Open 可能会稍微多一点,那么像12月,一月二月这些 Gold 考试,一场只有20多个人通过,分到美国50个州的话,相当于是2个州分一个人。

为什么变难了?因为题目带进来了很多很多 tricks,很多技巧以及很多套路,有些结论我们不知道的话是很难在考场上去推导出来的。

所以,如果是从下往上,孩子成长路径像是一棵树在长大的话,到了某一个阶段,由于技巧太多,这棵树就会开枝散叶。以前开枝散叶节点是在 Platinum Level。近两年,这个点在下移,下移到大概就是比 Gold 还稍微低一点点的阶段。

这意味着什么?就是孩子仅仅学会知识点就不够了,而且是远远不够,现在知识点只是起步。这也是为什么很多孩子到了 机构 的时候,说我在某某机构已经把知识点都学差不多了,为什么过不了 Gold,我不知道该怎么继续往前走了。

最大的一个问题就是在于他们可能只是把知识点学到了,但是知识点只是一个起点,想要通过 Gold,必须大量的做模考,做难度始终比他当前的水平高一点点的这种题目,进一步掌握各个细分 topic 的 trick 和各类解题技巧/套路,才能在考场上不花大量时间在推导结论上,因为学生已经知道这些结论了,或者大概知道有一个方向,这样子在考场上才有优势。

最后是 Platinum Level。Platinum 相对来讲是跟gold的 topic 基本吻合的,基本上是 Gold 有什么东西 Platinum 就有什么东西,但 Platinum 每一个 topic 里面有更深层次的要求。比如 DP 的话,Gold 级别把 DP 公式推出来,一般来讲也就做出题目了,很少需要做很高级的一些优化。在 Platinum 不做优化程序就会超时,这就要求就需要孩子有更进一步的能力。

在 Gold 和 Platinum 级别,在美国范围内,除了 机构,没有其它地方第一有资源,第二有实力,第三有精力来做这一块,那么 机构 随着时间推移,之后的成绩会更加强势。

如果同学们感到自己卡在了什么地方无法继续到达下一个 milestone,那么推荐来上我们的 USACO辅导课程。该课程有大量的模考训练,通过模考学生能体会考场上面的那种压力,以及他在考场中的遇到的各种各样不同的情况。

比如我在考场中可能会犯错,我做了一个小时发现这道题我看错了,再比如说我现在还剩一个小时了,我应该做什么?我应该是把已经做的题目拿更多的分数,还是开始做新的题目?其实都是在考场中考场中遇到的很现实的情况,那就非常需要孩子能够到时候做出判断。

此外,如我前面所说,知识只是起点,学完知识,离能够过这个级别还差得很远,一定是要参加 USACO辅导课程 来把自己这些平时学到的知识点不断练习,获得更多的 muscle memory,也就是肌肉记忆。

最后,模考可以让同学增加解题的技巧,因为只知道基本知识点不够,需要理解知识点各种各样的变化,以及不同领域之间它还会发生联动,可能是两三个topic加起来是出了一道题。这个题我们叫套路题,这个套路要在平时的模考之中碰到过,才能够掌握,考生需要能够把这些套路题都搞清楚,这样子才能在考场中不吃亏。

上一篇

想申请美国Top10学校CS专业USACO要到哪个级别?

下一篇

只会Java参加USACO辅导课程需要学C++吗?

你也可能喜欢

评论已经被关闭。

插入图片
微信咨询 微信咨询
微信咨询
在线咨询 在线咨询
在线咨询
返回顶部