事实上,虽然没有哪一个策略是一定好用的,但是优秀的策略往往能让一个选手在有限的时间内做出更多的题,并挂掉更少的分。
下面我会从应该做的事和不应该做的事两方面讨论这三个赛制。
OI赛制——最应该做的
1.平时积累一些易犯的代码编写错误:如某类符号写错,下标写错,数组开小或未清空
2.OI有时需要对拍,对拍不仅是确定算法正确更是为了便于调试,如果上面的简单错误都查过了,且没有容易查错的数据时一定要打对拍。
3.有时候怎么都调不出来是因为算法假了,读题确定你没有读错后,赶紧想想有哪些清空没有考虑到(确认假的原因),然后再根据经验选择重写或跳题。
4.永远不要忘记打暴力,以及一些题的性质分,这一步的优先级甚至在想出签到题正解之上。
5.传统做题策略是一道一道做,或者是先写完暴力再优化正解。但更优的方法是先写出签到题正解(如果有),再打暴力,打暴力时也不能无脑搜索(有时候会很难写很难调),而是应该想想朴素做法和特殊性质。
6.暴力有时候会启发正解,但这种题有时候很难写,所以在平时不仅要熟练掌握所有考纲内的算法,更是要锻炼代码能力和调错能力。
7.数据分治,竞赛神技
8.对困难的题尽量做出多方面的思考。
9.做不出来的题总结核心技巧
OI赛制——最不应该做的
1.将输入输出注释掉
2.数组开小/未清空/越界/符号写错(通常是一大堆报错)
3.起特别容易写错的变量名或函数名,如dfs1,dfs2
4.没算是否会爆longlong
5.死磕一道题超过两小时,其它题想都没想
6.没模拟样例就做题/只看样例,连题目都不看
7.太在乎做不出来题会怎么样,紧张,头脑发昏,急于求快
8.喝很多咖啡/带很多零食 注释:可以带,但作用很小,不如心理暗示自己可以做到
9.认为某一道是人均题/想都不想就放弃前面位置的题
10.平时抄题解不动脑,学算法不扩展
IOI赛制——最应该做的
1.对拍,IOI赛制没有很强样例,对拍很重要
2.数据分治,别的之前说了,略过。
IOI赛制——最不应该做的
1.写完题直接交,不肉眼查一下。如果一堆报错,会影响心态和效率。
2.不愿意写暴力/某些复杂度错误但实际效率很高的算法/某些不正确但错误率小的算法(别太小看这些了)
ACM赛制——最应该做的
1.除了签到题,尽量每个人都看,并留下自己的解法/想法。
2.对困难的题尽量做出多方面的思考。
3.写签到看榜
4.对拍
5.代码短的题报错时可以让队友重构
ACM赛制——最不应该做的
1.自己一个人想题(除了签到
2.写不擅长的代码或算法(请交给队友
3.短的代码的错误找一堆人调(要么自己解决要么找队友重构
OI赛制重要信息
$int$开$1e8$是大约$400MB$,$longlong$不能开$1e8$
对于时间复杂度紧的问题或复杂度错误的算法可以适当排除无效状态
线段树容易越界,记得特判