NOIP/CSP常见错误合集

现在发现大部分问题并不是想不起来,而是写的时候慢慢就忽略了,所以要时刻保持清醒的头脑。

目前合计:\(28\) 条。

  • 不易察觉的小数据范围要开 \(longlong\)(如答案求累加)。
  • 整体开 \(longlong\) 过程量忘开爆掉。
  • 数据范围随手抄错(数组开小简直太尝龟了)。
  • 多次操作队列忘记清空。
  • 多组数据数组忘记清空(现在主要是清空不彻底了...)。\(\mathtt{(PS:md今年CSP-S被这个搞掉90pts)}\)
  • 忘记排序。
  • \(n,m\) 写反。
  • 线段树范围*4。
  • 图论范围为 \(n*m\)(点*每个点连的边数)。
  • \(bool\) 类型 \(flag\) 赋了其他值,例如 \(flag\) 取值为 \(1,2\) 时就会挂掉。
  • 忘写 q.pop();
  • 忘记 return/break
  • 位运算过程中绕晕。
  • 线段树忘记建树,同理其他初始化函数忘记调用。
  • 写成 \(x+=y\%mod\)
  • \(longlong\) 类型 \(\%d\) 输出。
  • 单调队列 \(l,r\) 和其他的变量弄混,或者是没放在 \(q[\ ]\) 里面作为下标。
  • 队列左右端点忘记初始值 \(l=1,r=0\) 表示空队列,常见于莫队和单调队列。
  • 与上一条对应,队列初始化忘记放入一个元素 \(0\) ,表示从 \(0\) 开始转移。
  • 字典树忘记初始化 \(tot=1\)
  • KMP 所有的 \(i\) 相关转移本质都是 \(i+1\)
  • 树上对应区间的 \(dfn\) 数组忘记嵌套,常见于线段树的修改/查询区间。
  • 懒标记忘记清空。
  • 存边的数组开的和点数一样大,俗称 \(n,m\) 不分。
  • 遍历树求 \(dep\)\(u,v\) 写反,也就是写成:\(dep_u=dep_v+1\)
  • 记录类似 \(lst,nxt\) 数组时,不要忘记考虑为 \(0\) 的情况!在线段树或者树状数组里可能会死循环!
  • break/return 时记得看看是否有其他操作没进行完!
  • 自己根据题目发挥的写法处理边界等等一定要小心小心再小心!!
  • 取模的时候出现减法一定不要忘记加模数!!
  • 同时开了全局变量和局部变量,用的时候全局变量还是 \(0\)
  • 处理的时候把数组翻倍,忘记更改数组大小,比如断环成链。
posted @ 2021-05-02 15:03  conprour  阅读(171)  评论(0编辑  收藏  举报