常见错误
Captain_Paul
2018-09-28 14:37:10
整理一下经常出现的沙茶错误
- 答案如果是$LL$类型,**中间过程中的变量也要尽量设成$LL$**,以免爆炸
- 倍增的时候**一定是从$maxlog$到$0$,不要忘记加~**
- 死循环的时候看一下是不是有函数名写串了
- 如果是在递归过程中的排序,**不要用全局数组**,最好用$vector$,不然会$WA$惨![比如这个](https://www.luogu.org/problemnew/show/CF1006E)
- **位运算的括号要尽量加全**,毕竟你也不知道先算哪个
- **超出$int$的位运算要用$1ll<<i$**
- **用来离散化的数组要开大!**
- **离散化之后的最大值是$tot$不是$n$**![比如这个](https://www.luogu.org/problemnew/show/P3928)
- 数组大小尽量按数据范围来,如果懒得算就开大点!
**分清是$N$还是$M$**![比如这个](https://www.luogu.org/problemnew/show/P4180)
- 多组数据**清空数组要彻底**!尤其是$idx$和$dfn$等看似没有影响的数组
- 注意**数组下标是否小于$0$**,尤其是树状数组和$DP$中
- 尽量不要用可能与关键字冲突的变量和数组,如$rank,top,y1$等
- 双关键字排序不要漏掉一个
- 欧几里得距离如果能用$LL$存下就不用开根号,以免卡精度![比如这个](https://www.luogu.org/problemnew/show/P3958)
- 爆搜过不去可以尝试一下**迭代加深**
- 重新建图的时候记得清空$head$和$num$
- 带模数的减法最好先加上$mod$再取模
- **费马小定理求逆元模数必须是质数**,不是质数用$exgcd$![比如这个](https://www.luogu.org/problemnew/show/P1495)
- 某些题求出答案后要仔细想一想是不是最终答案![比如这个](https://www.luogu.org/problemnew/show/CF13E)
- 线段树的题如果$WA$了,看一下是不是少了$pushdown$
- **二维树状数组**必须是$(int\ i=x;i<=n;i+=lowbit(i))$,因为有**两重循环**
- **$map$自带大常数,少用**
- 缩点后点的编号是$bel[i]$!
- **求多维前缀和,与当前值无关的也要复制过来!**
- **与边有关的数组要开大!**不能和点的数组一样大!
- **不要漏掉并查集、割点之类的初始化!**
- **提交前删除调试信息!**
- **分清$YES$和$NO$的大小写**