OI 赛制心态调整/trick 合集
Xiphi
·
·
个人记录
OI赛制推荐策略
- 开场:你可以阅读所有题面,或者一题一题做。如果选择前者,不要因为后面的题太难/不符合自己口味影响心态。
- 做题顺序:注意到过若干个题可以让自己心态变好,所以一般从简单到难做会更舒服。
- 如果你调不出来:这里需要讲两种不同的角度,怎么调和什么时候放弃。
- 怎么调:阅读源代码,输出中间变量,使用 assert 语句,开启 -fsanitize 等策略。
- 调试的核心:选一组数据,观察程序的行为和你期望的是否一致,如果一致就是做法正确性问题,
如果不一致就可能是代码有 BUG。
- 建议:一个题建议不超过 2h,极限情况是 2.5h,否则强制直接跳。
- 一定要阅读部分分表格,先把能打的分拿到。
- 什么时候放弃:在你不知道/你能确定做别的题是否收益更高的时候策略是不同的。
- 优先看完题目,至少想 10 分钟。在没有走进死胡同前,且觉得自己可以 AC,可以适当磕一嗑。
- 最后 15min 最好不要修改代码。除非你确认你理解了代码。
- 尽量不要
#define int long long
尝试制定一个自己的策略:
-
开场先看所有题,简单扫一遍后确定哪些题是自己可以做或是可以获得较高档位(大于等于 40 分)部分分的,哪些是比较能 A 的。用时 15 到 20 分钟。
-
先花上 0.5h 磕一磕 A,如果没推出来什么有用的性质或者是关键的转化,看后边的题。若在 0.5 h 里切掉了,花 15\min 检查一下。如果自己觉得推出了很有用的性质,可以再磕 30 到 45 分钟左右。
-
现在是 1.5h,你已经切掉了 A。如果还没有的话,先拼完
拼完后 3 题暴力之后全力冲出 T1。
-
后面,就没有什么好说的了,都是不可控的。一些场景或许会出现在下一节中。建议在即将做出决定性决策时计算一下收益。
考场心态调整
场景 1
考场看完 4 题发现一题都不会。
策略:拼完后 3 题暴力之后全力冲出 T1。
场景 2
策略:
- 不要放弃,别浪费一点时间,不要摆烂不要破防,相信自己能在接下来的几分钟调出来。要相信自己坚持下来做题就能 1=。要 **相信自己** 并 **坚信** 自己不是个傻逼。千万不要破防。
- 保持冷静,万一是个结论题,想到了就是有救的,不要觉得自己没救了,保持冷静。
#### 场景三
对于你的水平而言,你前 2h 切掉了前两道或者三道题,大顺风。
策略:
不要松懈,万一前边都是红题呢。另外这时候有思路,且验证过细节,一定一定要写!!有些猜结论的事情也一定一定要写!!不要半场开香槟。
#### 场景四(一些错误的策略)
注意到,做模拟赛的时候,我经常迅速判断某题“我能得到多少分”甚至是“我是否能做出来这道题”。这里迅速判断是相当错误的,我甚至没有深度思考就去预设这个题我能做到什么程度。
这个策略是非常错误的!因为你永远不知道它是不是个诈骗,是不是个简单题,你永远无法知道你是否正确,而且自己经验不够,绝对不要在思考的时候暗示“自己只能得xxx分”或者类似的东西,深呼吸然后坚定自己的思路即可。
可以为 NOIP 设定一个比赛策略,注意到一开始的时候思维最好,所以可以先用 30~45 min 先把前两题想出来,然后开始花 $15min$ 简单看一下 T3,思考一段时间,中间休息(上厕所)一下,看看前两题做法对不对,有问题赶紧改,没问题开始深度思考 T3(记得记录所有题的做法),不要放弃。如果 30min 在“预期分数”上毫无进展,开始打代码,从难到易即可。最后就打暴力就行。
经验不够,却提前给自己下限制。在赛场上可以准备几句“标准台词”,一旦开始瞎预判就对自己说:
- “现在下结论是没有意义的,我先把三种做法想完再说。”
- “我只负责把每 10 分钟用满,不负责预测得分。”
- “我以前多次被诈骗题骗过,所以这次要按流程来。”
#### 一些技巧的通用
- 如果你觉得很困或者很晕,可以上厕所。
- 去洗脸,可以吃东西。
- 你调不出来。你可以暂时性的先去想别的题目来让你的思路换一换。也可以上厕所?
- 你做的差的时候,你要想一等奖并未离你而去。有实力跟你有相同实力的人,没有那么多人,大家都会失误。
- 是 DP 题,检查DP数组哪些位置有值,是否所有位置都有值
- 最优化问题,一定要对拍。单次最优化一定要对拍。
- 数数题检查取模。
- 如果你觉得一个乱搞能得分,那就一定要去写。坚信出题人与 CCF 的数据。
- 位运算:拆位。
- 看到恰好,想到钦定....
- 看到区间信息,考虑前缀/差分,或是线段树
- 看到中位数,想到变成 $1,-1$ 的序列或二分。
- 想想有些东西或许有单调性....?
- 策略的核心是减少你正在面对的题。
- 排列想到置换环。
- 看到冒泡排序:想到逆序对。
1. 整除与同余最短路联系:一位一位加看能不能被k整除
2. 想想 dp 可不可以取出无效状态(如只有i+j的和有用之类的)
3. 不要急于写代码!写最简做法!
4. 遇到树的题一定要先想从儿子往根的方向转移而不是反过来
5. 大胆猜结论,比如说答案很小,什么东西有单调性,调和级数优化,只能通过某个操作就能得到最优答案之类的
6. 尝试最短路建模
7. 不会的时候可以枚举做法。例如贪心,就把 fi*se,min(fi,se),max(fi,se) 都试一遍
8. 如果遇到 4 个变量且由 2 个能推出另外两个时,不妨想想枚举哪个,算哪个更优,让代码好写一点。
9. 尝试容斥
10. 树上背包小心写成 O(n^3)
11. 中位数转换成 +1-1,平均数转化成和或 都减平均数最后等于0
12. 尝试正难则反,倒着想
13. 知一求二可以尝试找性质变成知一求一
14. 坐标系中两个在第一象限中的点 (x1,y1),(x2,y2) 的连线上的顶点个数是 gcd(|x1-x2|,|y1-y2|)。
15. pick 定理:S=多边形内整点个数+边上整点个数/2-1
16. 可以分别求前后缀,最后拼起来
17. 求最小距离和想到中位数。
18. *2+1-1 的题可以尝试暴力
19. 大胆猜性质