错误锦集:从 2020 年 7 月 开始更新。
01. 数组开小 & 没对数组内存进行检查
2020/09/04:暑假以来第二次犯这样的错误了,必须好好看代码,测试极限数据,不能有下次!
模拟赛,有一道 $n le 3 imes 10^5$ 的题目。
写代码的时候,我写了正解,却没有发现数组只开了 $10^5$。
为了 AC 这题,我还写了对拍,拍了成百上千组数据,没有发现问题(因为暴力是 $n le 3000$)。
但没有对这题进行极限数据测试。
更可悲的是,我还对下一题(也是 AC)的题目进行了极限数据测试,却没有检查这题。
理由很简单,那道题在我的眼里明显比这签到题更重要。
过度的自信,往往会疏忽什么重要的东西。
最终,我只拿到比暴力多 10 分的分数。
考后我还在想,还有两个多小时的时间,怎么会检查不出这个 bug。
没办法,只能怪自己,这并不是出题人的问题。
02. 输出 YES 和 NO 的大小写问题
03. 输入数据组数的时候,尽量用 while,不要用 for
04. 计数题有取模时,注意每一个涉及计数的变量是否取模过(实在难检查就在写的时候注释标记一下)
5. 有 -1 等特判时一定要注意!
6. 算好数组使用空间!
7. 能用 std::heap 的操作就不要用优先队列