title: bugset
tags: [调试]
categories: [OI, 个人整理]

常见

没加快读
爆数据类型
多个循环时变量别搞混,i j k idx
在局部里开变量,即使是结构体,也会是垃圾值
在运算时类型不会强制转换,如

long long n = ...;
__int128 a = n * n; n * n 有可能会爆

不能命名东西为y1,本地编译会通过,但是在评测机上过不了。
算空间复杂度小心谨慎!!!
初始化!!!

线段树

pushup要在update和query的最后写,而不是pushdown里面。
动态开点线段树的update返回当前节点编号,以更新父节点的ls和rs。
pushdown最后要把标记清空。
完全覆盖时return。
线段树二分时深究返回值是啥。
动态开点线段树开多大

树状数组

不能修改0节点!!!

笛卡尔树

忘入栈
last应该在pop之前统计

并查集

有的题merge是有顺序的

最小生成树

boruvka算法最小值应该用find(u) 而不是u

逆元

fac[i] = fac[i-1] * i % MOD,而不是*(i-1)。

哈希

哈希尽量别开long long,耗空间巨大!!!
哈希计算的时候开1ll
检查调用初始化!!!

常数

如果n/i是一个常数,d是while中要枚举的东西,写d <= n/i而不是d*i<=n。