调试遇到的坑
-
多测清空,全部全部清空, 不要直接 memset 整个数组, 结尾清空更合适。(\(\times 1\))
-
\(\text{array, pair}\) 等 STL 本身有重载运算符,不能重载,应该写 \(\mathrm{cmp}\).
-
检查数组越界,数组大小
-
线段树的修改,查询操作都要 \(\mathrm{pushdown}\)
-
注意双指针等 \(\mathrm{while}\) 循环的时候要检查越界(下标 -1 要特判)
-
树状数组不能维护 0-index 的信息
-
\(\mathrm{fhq-treap}\) 的 \(\mathrm{merge}\) 操作要注意 x 中所有的权值要小于 y 中所有权值,一个是 \(\mathrm{merge(tr[x].rs, y)}\), 一个是 \(\mathrm{merge(x, tr[y].ls)}\)
-
函数如果返回值不是 void 一定要 return!!!不然会被 O2 杀死!!!
-
基环树如果连双向边是可以有重边的 \(\mathrm{(a \rightarrow b, b \rightarrow a)}\) 找到环上的边删一条就可以了,即使用链式前向星或者找到这条边换到最后再 \(\mathrm{popback}\) (找到立即 \(\mathrm{break)}\), 否则会被二元环卡掉.
-
二分题要注意:如果我们二分 \(x\), 并且 \(\mathrm{check}\) 的是 \(\mathrm{calc(x)}\) 是否小于一个数, 然后计算一些和 \(x\) 有关的东西的时候要注意:也就是说临界位置有时候只要算一部分。 以一道典题为例,将一堆序列放在一起从小到大排序求前 \(k\) 小的数的和, 我们二分出第 \(k\) 小的数后, 要把小于这个数的都加上,并且等于这个数的只加一部分(这部分个数肯定 \(\le n\))。题目:https://bs.daimayuan.top/p/34
-
树套树里如果内层树是动态开点,则要把 节点个数 和 节点信息 记在外面,否则会被覆盖。
-
写 \(\mathrm{trie}\) 树的时候最好让根节点是 \(1\) 而不是 \(0\), 不然如果访问到叶子节点的 \(\mathrm{nxt}\) 可以会调用根节点的一些值
-
特判一定一定一定要写在最前面,否则可能会在执行特判之前进行一些奇奇怪怪的输出甚至直接结束. (\(\times 1\)) 教训:
https://atcoder.jp/contests/abc397/submissions/65722734 WA
https://atcoder.jp/contests/abc397/submissions/65722789 AC -
如果循环要让 \(i = l \to r\), \(l, r\) 是 int 范围, 那要把 i 开成 long long / unsigned , 否则 i 会在最后一次变成 INT_MIN
-
map, set 如果用的是自定义结构体类型一定要注意把重载运算符写完整!!!假如有 a, b, c, d 四个元素, 如果只写一个 return a < A.a; 会导致 map/set 认为 a 相同的元素就是相同的。
-
exgcd 中的 a, b 最好都弄成正的防止搞出负数 gcd 导致把 x, y 变成非负的时出现问题。(\(\times 1\))
-
dijkstra, priority_queue<pair<dis, pos>, vector<pair<dis,pos>>, greater<pair<dis,pos>>> dis, pos 顺序千万不能反. (\(\times 1\))
-
树上背包合并的时候,不能先 \(sz_u \leftarrow sz_u + sz_v\) 再合并前面的子树和 \(v\) 的子树,不然一条链会被卡死。
18. 算空间!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! MLE 包死的。
-
遇到多测的判断题,不要在输入到一半就直接输出或者退出,否则可能会把这轮的输入带到下一轮。
-
在 Linux 环境下,long long inf = 1e15 会 CE, (ll) 1e15 就不会。
-
如果你要计算 \(a\) 并且同时要用 \(a\) 得到 \(b\),这时一定要注意在计算 \(b\) 的某一步时所需要的 \(a\) 是否都有了,最好的方法是分开写。
-
线段树区间加维护区间 \(\gcd\) 不要边加边取模!!!(3h)
-
杨辉三角预处理组合数一定要从 \(0\) 开始枚举,不然 \(\dbinom{0}{0}\) 会没有初值变成 \(0\),比如 CSPS2025T4 就会挂(1h)。

浙公网安备 33010602011771号