mistakes:
- 写了暴力,但没有调用暴力的函数。
在 2019/10/26 校内模拟 T2 中犯错,当时是这样写的:
/*if(n<=3000) subtask1::solve();
else */subtask2::solve();
考试快结束时一定要检查,不要丢不该丢的分!
- 数组开小。
在 2019/11/08 校内模拟 T2 中犯错,直接从 100 100 100 挂到了 30 30 30。
一直觉得自己是不会犯这样的错的,但现在看来并不是这样。还是得更细致。
- 在写暴力找规律 / / /对拍时,暴力写挂。
2019/11/11 校内模拟 T2,虽然最后没有挂分,但是对着错表傻 fufu 找了半天规律还是浪费了许多时间。
在写这种暴力时,一定要写最裸的暴力,严格照着题目写。如果效率实在过低可以 10 10 10 分拍 30 30 30 分, 30 30 30 分拍正解这样做。
- 读题不仔细。
2019/11/08 校内模拟 T2,当时少写了一个细节,被卡了半天才过大样例。
一定要注意读题,尤其是大模拟的题,至少读 3 3 3 遍,把重点用高亮标出来,并且构思好了再写。
- 因一些细节问题而写挂。
在 2019/11/12 校内模拟 T1 中犯错,由于并没有考虑交换后的位置而犯错。
过了样例一定不能松懈,自己构造几组数据看能不能卡掉自己的代码,时间充裕的话一定要写对拍。
tricks:
- 根据数据范围猜算法。
这个应该比较实用,有时可以通过这个迅速确定算法。
- 打表。
对于一些数学题,尤其是要 O ( 1 ) O(1) O(1) 或 O ( log n ) O(\log n) O(logn) 算的,一定先打表找规律,实在找不到再推正解。有时会节约大量时间。
此外,不一定是数学题,很多题都可以试着打打表,说不定会有意外的收获。
- 对于题目的转换。
比如正难则反的思想。
又比如,我们想算一个总的贡献,可以算每一个小问题的贡献 × \times × 其被出现次数再求和。例 2019/11/11 校内模拟 T3。
再比如,转换成一些问题的模型,例如背包问题之类的。
还有一些特别妙的,看起来像数论,但却通过巧妙的建边变成图论之类的题。
这类问题还有很多,也肯定不止上面这些,遇到了再总结吧。
warning:
考试的时候一定不能慌,一定不能慌!
最后 10 m i n 10\;\mathrm{min} 10min 尽量不写代码,可以检查一下数组是否开够,是否写了文件,是否犯了一些 s b sb sb 问题等等。
写完某一题代码后,不急着开下一道,可以先静态 debug 一波,把细节之类的想清楚,想全。确保无误了再开下一题。
每道题都要写暴力,不要在某一道题上花过多时间,要权衡利弊再写。
考试时间就那么点,一定不能浪费。
感觉最近状态不好,心情比较低落,还是该好好调整。
update(2019.11.14):又考炸了,掉到了后面去了,难受。