某oier个人竞赛经验

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

概述

相对于其他学科竞赛,信息学竞赛发展比较初步,竞争要小一些——具体体现在:如果能把水题的分拿稳了就基本接近一等线了。特别是在四川省,这种显现比较明显,一等奖分数线会比苏浙一带低上一大截。所以“稳”是一个非常重要的要素,不少接触信息学一年甚至几个月就拿下一等奖的传说,大抵也是由于考试时有仔细、稳定的良好习惯。所以就目前来讲,一等奖并不难拿,但并不只是单纯地强调智力和知识就可以得到,需要强大的心理承受能力(即“淡定”)、丰富的编程经验、考试技巧来作后盾。

另外,根据笔者的观察,信息学竞赛的考察近年来有从“知识”到“能力”的偏移趋势。以往的题往往会考一些特定的知识点(比如动态规划、图论之类),一般可以由模板算法套用变形解决。但是今年的题基本没有考这些——除了某些不能拿全分的数据可以用动态规划解决。这些题的解法事后看来或许会很简单,而且编程难度并不复杂(一般也就100行左右,手速快点的同学最多15分钟就可以敲完,调试经验丰富的同学二十几分钟就可以调试通过),但是某些点会比较巧妙,如果考试时不静下心去思考的话很难想到,如果没有大量的做题经验的话也容易卡住,有时一个得自平时经验的简单优化就可以救起一个复杂度(包括时空复杂度和编程复杂度)极高的程序。

拿郭怡辰同学为例,来说明经验积累以及考场应变的重要性。为了求一段连续区间的和,他使用了比较高级的“树状数组”数据结构,但实际上只需要一个简单的数组就可以解决(即令S[i]为前i个数的和,那么第i个数到第j个数的和就是S[j]-S[i-1])。前者是专门处理数字会动态改变的数组的求和算法,而后者则是处理静态的数组求和算法。而这个经验任何一本书都不会专门去讲(如果你找到了那真是幸运),但是在刷题的过程中(包括阅读标程的过程)可以很容易得到。如果找到了正确的方法(性价比最高的方法),会在考场上省下大量的脑力和时间。

日常训练

模拟赛

首先要强调一点,【注意】,这也是笔者吃了很多亏的一点,那就是实战训练的重要性!七中本部的同学经常都做套题训练,即使是在他们知识结构尚不完整的阶段,而本校因为组织的问题(原本没啥组织,希望几代之后能建立完善的信息学竞赛组织),并没有强调套题训练的重要性。因为套题训练可以给你直接的考场经验,而这些是非常重要的:

1、做题策略:怎么在第一眼就看出哪一道题是最简单的,应该按照什么顺

序去做?一道题该花多少时间思考、多少时间去实现、多少时间去调试?

你的方法是否能在以上时间内完美实现?在考场上你能“hold住”多复

杂的代码——你能写多少行程序并且很小概率出错?(笔者的这一数据

在学习过程中从70上升到150)在思考了以上问题之后,你应该选择哪

个分值作为目标,是100%,%70,甚至30%?(千万不要小看30%的点,30分绝对不是小数目,特别是在你能用一个极其“白痴”的算法在极短

时间内拿到它的时候)等等……竞赛考的不仅仅是知识,更需要一个合

理的临场抢分策略。

2、急中生智:在做一道题的时候卡住是很正常的时候,特别是在考试的紧

张氛围之下。很多时候事后回想,发现题目的标答方法并不复杂,甚至

我们可能本已经触及到其边缘。所以我们务必要锻炼自己在紧张情境下

突破问题关键点的能力,而这种能力只有在考试环境下才能得到最好的

锻炼。笔者就有多次脑袋几乎想爆(有时甚至全身发麻),然后灵光一现

抓住问题关键豁然开朗的经历——这种经历下获得的快乐是极大的,并

且一旦想通这道题就没有任何难度,一旦做出来就是几十上百分的差距,同时也为你省下了大量的时间。

3、保持淡定:这属于考试心态的一部分,但往往极其关键——以上两点都

可以说是建立在“淡定”的基础之上的。考场上你敢不敢放弃100%的得

分点而去“苟且”那50%?能不能在时间过去大半而你并没有得多少分

的情况下仍然淡定地思考?能不能在剩余时间比较鸡肋(比如40分钟)

时放弃,返回去检查?能不能在时间比较紧张时仍然细心地读程序查错,写5、6个测试数据、甚至写一个对拍程序?——以上策略曾多次为笔者

挽回惨痛的分数。淡定才能稳定,才能细心,切记切记。

4、深入探究:平常我们说“刷题”,但考试中的题绝对不是刷出来的。即使

你没有在第一时间抓到题目的要点,你几十分钟的思考过程也绝对让你

深入地了解了这道题。看了标答之后,收获绝对不小。另外耐心地阅读

标程是一个很好的习惯,因为这可以让你学习到某些经典的简化程序的

方法,逐渐形成自己的程序风格。(笔者当年写一个链表的操作时,达到

了十几行的长度,但是学习了网上的经典程序,改用数组模拟的“伪链

表”时,只用了3、4行)

5、学习交流:笔者没有这个福分,但是希望本校以后的OIer们,能够组织

比较正式的模拟竞赛,并且在考后通过“评讲”等方式加快学习效率,

碰撞思想。童鞋们也可以尝试自己出模拟题,这也是一种不错的学习方

式。

考前特别需要认真对待模拟赛,务必按照完整的规范来进行。一位学长说过:“考前至少要停一周的课来练套题找感觉。”今年看到许多同学边做边评测,这是不可取的,无法提高面对考试环境的能力。

刷题

作为一个OIer,一定的题海战术是必要的。这些可以帮你把知识运用到实战当中,并且获得许多书本上学不到的思路。

OI与其他竞赛的一个很大不同在于它的思维与实践都是必不可少的部分。如果一个算法你没有完美地快速实践过,那么千万不要拿到考场上去使用——光是调试都会花去你大量的时间,并且不能保证正确(参加省选的同学尤其注意,笔者在上面吃过亏)。

OI的解题思路和我们“文化课”的学习一样是可以总结、把握的。笔者切身体验,做了很多题之后,能够很快速地想出许多同难度题目的解法。也就是把握思路——注意,虽然信息学注重实践,虽然理论上有多种方法可以达到目的,但是思路仍然尤为重要。找到正确的解法,可以省去大量的时间。

目标是NOIP提高组难度的同学千万不要歧视水题,水题其实是很好的。1、可以提高信心。2、水题有时候水只是因为它不是多个知识点的组合而已,其本身还是一个比较精妙的系统。(笔者的动态规划就是靠大量的水题堆积起来的,tyvj上有很多动态规划的水题,代码短得可爱O(∩_∩)O~)3、水题要保证正确率有时还是不容易的,可以提高你的细心程度。4、水题意味着更少的思考时间,你有更多的时间去打代码,可以获得流畅的码字体验,对提升手速很有帮助。5、某些题之所以是水题,是因为它思路简单,但往往实践起来很麻烦。(比如“模拟”、“搜索”中都有很多这类题,对于提高你的“代码控制力”很有帮助)目测NOIP提高组接近50%的题都可以被视作水题,所以水题一定要拿稳分。如果把水题100%地hold住了,一等奖就有很大希望了。

推荐几个题库(可能大家都有知道)

【荐】USACO 源自美国的信息学题库。USACO Training 是一套循序渐进的题组,按照顺序刷就行了。(第一组可以跳过,基本属于普及组难度的。没记错的话刷完第四组提高组一等奖的能力就基本有了。之上是省选、国家队难度。)

特点是比较系统、合理,测试数据完全开放(现在很难找到这种题库了),很多高手都刷过,有不少前辈遗留的经验可供参考。

另外推荐NOCOW网站(网站名得名自对USACO的吐槽= =)。其中的USACO Trainging部分有中文翻译、各种解法、标程。网站是开放式的,只要注册账号就可以进行编辑,如果你有更好的方法也可以贴上去。这个网站还有一个部分是竞赛所需的“知识树”,其中包含了直到IOI所需要的大部分知识,讲解也通俗易懂,配有各种语言的前辈遗言。

【荐】tyvj()中学生自创的OJ平台,其前身是Vijos(已倒闭)。特点是版面使用起来很顺手,相比于大学题库来说比较基础(刚发展时被称作“水库”,现在好了些),但是比较符合提高组难度,也在逐步地公开一些题目的测试数据。其许多的题目是原创的,不定期会举行网上模拟赛。(竞赛前会大量举行,笔者平时就是通过这个渠道取得实战训练的。另外,也可以申请举办竞赛。)一个缺点是网速不怎么好,人多的时候挤不进去,网速卡的时候挤不进去。由于是非盈利性质,所以资金会比较困难,如果哪位童鞋零花钱比较宽裕可以考虑为他们捐点金银。

【荐】Pku题库北大的题库。特点是题量海了去了,非常全面(要找什么类型的题可以直接百度之,一般都会有博客写解答或标程),想要冲刺省选以上难度的同学推荐。但是99%的题是英文的(笔者甚至看到过一篇文辞优美的情书式的自创题目……),自备金山词霸或者有道词典取词翻译即可。不过大学的题库都有一个比较致命的弱点(也可以说是优点),就是运行结果极其简略,只有AC,而没有AC几个点的说法,所以做起来会很郁闷,不知道程序改了之后是不是多对了几个点。调试起来比较麻烦,但是比较锻炼人。(注意,瞄准提高组的同学可以不必去碰里面的许多题,usaco+tyvj足矣)

其他的还有rqnj(也是针对提高组的),信息学初级题库(没记错的话,有一个普及组的水题题库,徐老可以给普及组充电),各个大学的OJ(其中有一些

相关文档
最新文档