关于信息学奥林匹克竞赛(OI)比赛策略的心得体会

来源:互联网 发布:java初级教程 编辑:程序博客网 时间:2024/05/22 03:32

信息学竞赛是对选手各方面能力的全方位考察,选手不仅要对OI各种知识运用自如,也要掌握良好的比赛策略,在有限的时间争取到最高的分数。

那么,怎么样的比赛策略是良好的呢?以下是本我根据亲身经历提出的一点见解。

看题

比赛开始的时候,选手就要看题。很多人看题只是看懂个题目大意就跳转去看下一道题。其实,这是不明智的做法。

当我们初看一道题时,往往印象不深,从而忽略了许多细节。而有些细节,如数据范围、特殊规定等。这些细节直接决定了思路的发展过程,甚至与算法正确性直接挂钩。

所以看题时,要注意以下几点

  1. 应该反复读题,读不懂或者拗口的地方多读几遍,以免对题目理解出错。
  2. 特别注意细节处。
  3. 重点内容应该记录下来,防止忘记。

想题

其实想题这个过程主要看选手个人的做题经验。

如果把“了解题目大意”看成起点,“想到正解”看成终点,那么想题的过程就好比是一次搜索的过程。如果选手平时做的题多,经验丰富,就好比是搜索时加上各种剪枝,各种优化,自然很快找到终点。反之亦然。

那么比赛时有没有好的方法来帮助想题呢?有以下几点。

  1. 一有思路就马上写在纸上,不管好不好,可不可行,总之记录下来,说不准会用到。
  2. 想想有没有做过的题与比赛的题相近,如果有,不妨试试类似的思路行不行。

做题顺序

做题顺序真的非常重要,它能到影响选手的码题速度,做题心态,甚至影响到最后的比赛结果。

那么按照怎样一种做题顺序是最优的呢?

本我认为首先可以将题目分成3个层次

A类题:很有想法
B类题:有一点想法
C类题:一点想法都没有

首先,应该先把C类题的暴力打出来,因为C类题你可能到比赛结束都难以想到正解,而暴力程序一般都不难打。打出暴力正好可以让自己进入状态,为接下来的题做准备,也能顺便拿点分。

然后,此时你已经差不多进入了状态,那么就可以快速把A类题的正解打出来,如果条件允许,顺便把暴力程序也给打了,来给正解对拍。

如果对拍也没有问题,那么你的心态就可以放正了,毕竟再差也不会差到哪里去。
那么现在你就可以全身心去攻克B类题了。到最后,B类题就会变成A类题或者C类题,再分别按照题目类型对应的方法去做就好了。

如果实在是想不出来,也可以在比赛结束前留一段时间,专门打水法。说不定打着打着就拿高分了。

以上仅仅对做题顺序提供了一种参考。然而比赛场上变幻莫测,具体怎么实践,就要选手根据实际情况而做决定了。

打题

关于打题,以下是本我的几点建议。

  1. 打题前,先把程序流程详细地写在纸上,这并不会花费多少时间,却能防止打题时出现不知道下一步怎么打的情况。
  2. 打题时,打一点就调一点,这样可以防止整个程序打完后,bug太多且不容易调的情况 。也能提升程序的正确率。
  3. 打完后,不能样例数据过了就不管了,一定要出数据验证。方法有很多,你可以打暴力来对拍,也可以出极限数据来看有没有溢出。

由于本我水平有限,加上时间不充足,本博客难免存在疏漏和不足之处。如有发现错误请及时指出。如果有补充,或是不同的见解,也欢迎在评论区留言。大家分享心得,共同进步。

原创粉丝点击