0%

小黄鸭经验

傻逼错误

此处收录了 debug 时发现的一些血压飙升的错误。警钟长鸣。

  1. 注意 n 和 m 的读入顺序和在 for 循环里的使用,别把 n m 弄成 n n。
  2. 小心 1 和 '1',这是一个情急下很容易写错且难以意识到的问题。
  3. 注意多测的清空,尤其是多测下前向星数组的 head 和 cc。
  4. 注意数组的初始化。特别是 dp 的时候如果懒得写边界特判的时候。
  5. 注意 continue 的位置。如果你只是想跳过中间的某一段代码,后面还有另外的要执行,就不能 continue。这个问题在一开始没有考虑清楚逻辑,后续补上其它代码段时非常容易出现。
  6. 记得删 freopen。
  7. 小心 i*j n*i 之类的东西爆 int。
  8. 线段树大小是 0 的 build 会死循环。小心边界特判。
  9. queue 的初始化非常的慢,空间非常的玄学,不要开大的 queue 数组。

经验

  1. 理清程序逻辑
  2. 看清题目要求(例如昆明那道面积覆盖的矩形,写成了格点覆盖,死活没想到这个问题痛失银牌
  3. 注意边界特判
  4. 检查傻逼错误(变量名、多测清空、初始化等)
  5. 对于复杂度玄学的 dp,尝试尽可能减少状态比卡常更有效