爆零技巧
爆零技巧ψ(`∇´)ψ
很早之前我弄过一篇,但是感觉因为一些原因其实里面很多是因为算法本身不清楚弄出来的笑话。
这边写点正常选手会犯得错误,而且一般是广泛出现的,小众错误我就单独归类了。
出这个的目的是为了提醒自己检查的时候要检查什么。
特别是那种,本来可以拿分的,但是容易寄掉的细节。
较为通用解决方案:打开 -Wall -Wextra -Wshadow
。
宇宙无敌究极厉害解决方案:打个椒先,防止因思绪随机游走导致的猪脑过载。
- 多测不清空。
解决方案:多测题先写个 Init()
放在那里。
998244853
。
解决方案:C-c+C-v。
- 不开长长见祖宗。
解决方案,先算一下极端的情况。
- 多测读入没读完,判了无解直接 continue。
解决方案:你先别急,记录一个 vis,读完了再说。
- 在不知道运算优先级的情况下不打括号
解决方案:多打几个括号又不会死
- 值域和 \(n\) 的上下界相同,但是并不相关,这时候你不要以为给出的数据就是排列了。
解决方案:读题,没救了。
- 线段树几倍空间?抽象出来的图论题边数点数开多少?各种表示上界的变量是不是混用了?
解决方案:开数组之前先想一下。
- 负数取模加了 mod 没有?取模的时候有没有可能因为少取模溢出?
解决方案:不然写个 safe_mod
,不然就开 i64
然后边加边模。
pow, log2,sqrt
是有一定精度误差的,不要太过于相信它们。
解决方案:复杂度允许的情况下我可以二分手写
pow, sqrt
在整数情况下不会有事情。
- 你是不是没考虑类型强制转换?
解决方案:多类型运算的时候加点 * 1ll, * 1.0
。
- 你是不是又忘记 memset head 数组了,你是不是没写 pop,你是不是边界没 return,你是不是处理连续颜色段完了直接 continue 了。
解决方案:TLE 的时候你可以想想这些。
- 你是不是忘了有运算符短路这回事儿。
解决方案:当你发现有的条件没有被判的时候看一看。
- 又没考虑边界情况?
解决方案:没救了。
- 你想清楚了 C++ 和 C 分别是怎么处理字符串的吗?
解决方案:请你读一读 cpp ref。
最后更新:
May 9, 2023