我努力奔跑,只为追上曾经被寄予厚望的自己

常见错误

2018-09-28 14:37:10


整理一下经常出现的沙茶错误

  • 答案如果是 $LL$ 类型,中间过程中的变量也要尽量设成 $LL$ ,以免爆炸

  • 倍增的时候一定是从 $maxlog$ 到 $0$ ,不要忘记加~

  • 死循环的时候看一下是不是有函数名写串了

  • 如果是在递归过程中的排序,不要用全局数组,最好用 $vector$ ,不然会 $WA$ 惨!比如这个

  • 位运算的括号要尽量加全,毕竟你也不知道先算哪个

  • 超出 $int$ 的位运算要用 $1ll<<i$

  • 用来离散化的数组要开大!

  • 离散化之后的最大值是 $tot$ 不是 $n$ 比如这个

  • 数组大小尽量按数据范围来,如果懒得算就开大点! 分清是 $N$ 还是 $M$ 比如这个

  • 多组数据清空数组要彻底!尤其是 $idx$ 和 $dfn$ 等看似没有影响的数组

  • 注意数组下标是否小于 $0$ ,尤其是树状数组和 $DP$ 中

  • 尽量不要用可能与关键字冲突的变量和数组,如 $rank,top,y1$ 等

  • 双关键字排序不要漏掉一个

  • 欧几里得距离如果能用 $LL$ 存下就不用开根号,以免卡精度!比如这个

  • 爆搜过不去可以尝试一下迭代加深

  • 重新建图的时候记得清空 $head$ 和 $num$

  • 带模数的减法最好先加上 $mod$ 再取模

  • 费马小定理求逆元模数必须是质数,不是质数用 $exgcd$ !比如这个

  • 某些题求出答案后要仔细想一想是不是最终答案!比如这个

  • 线段树的题如果 $WA$ 了,看一下是不是少了 $pushdown$

  • 二维树状数组必须是 $(int\ i=x;i<=n;i+=lowbit(i))$ ,因为有两重循环

  • $map$ 自带大常数,少用

  • 缩点后点的编号是 $bel[i]$ !

  • 求多维前缀和,与当前值无关的也要复制过来!

  • 与边有关的数组要开大!不能和点的数组一样大!

  • 不要漏掉并查集、割点之类的初始化!

  • 提交前删除调试信息!

  • 分清 $YES$ 和 $NO$ 的大小写