常见错误

Captain_Paul

2018-09-28 14:37:10

Personal

整理一下经常出现的沙茶错误 - 答案如果是$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$的大小写**