OI日常
抱灵技巧
-
不用\(namespace\)或者\(c++11\)的话,变量名不能定义\(y1\)
-
求逆元时\(inv[0]\)一定要初始化为\(1\),不然组合数会出锅
-
杜教筛数论分块\(l\)要初始化为2
-
线性筛莫比乌斯函数的时候\(mu[i]=1\)
-
一定要计算程序内存是否过大,实在不会的话可以利用函数检验,在\(cmd\)里面使用 \(size \ ....exe\)
-
linux下评测时头文件不能加\(windows.h\)
-
平衡树有关的序列操作,如果牵扯到\(a[0]\)时,记得在最开始初始化时将\(a[0]\)加入平衡树
-
对于多组数据的问题时,特判后也要记得读完所有数据
-
pow函数不能处理结果大于int的幂
-
斜率优化时单调队列初始化 \(h=0,t=0\)不然会少更新前几个元素
-
主席树维护区间个数时,要么\(insert\)时对于来的路径上的每一个点手动\(+1\),要么写\(pushup\)
小trick
-
链式前向星删边可以打\(tag\)实现
-
维护取模的题可以考虑用作差维护,余数 = 总和 - 商 * 除数 ,当除数或商不变时,只需要维护另一个值的个数就可以了
-
对于区间上可合并的问题,可以考虑倍增或者线段树,但倍增有可能会被卡