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\)。
- 处理的时候把数组翻倍,忘记更改数组大小,比如断环成链。