HL集训挂分合集

这些是集训的

  • 线段树值域为 \(\left[0, n\right]\) 写成 \(\left[1, n\right]\)

  • 随机化算法没用 rand() (啊?

  • \(num \in \left[-1, 1\right]\) 所以可能会出现 \(num = 0\) 不能简单用 else 来判 \(1\) 而是 else if

  • 双向链表注意 \(0\)\(n + 1\) 的边界问题

  • 二分图匹配使用匈牙利算法时 如果可能匹配编号为 \(0\) 的点 \(match\) 数组的初值要设为 \(-1\)

  • 多测没清(你在想什么

  • 魔改矩乘的时候记得明确并统一运算定义

  • 倍增 LCA 预处理时的 \(j\) 层循环要正序枚举(不是你在干什么

  • 链前存图空间一定要开够

  • 注意特判条件别写错

  • 交题别忘删 / 加 freopen(。


这些是集训之后到现在的

  • 莫队先 \(init\) 分块之后再排序!莫队 \(nowl = l\) 不需要移动!

  • 值相同取编号最小 编号初始化为 \(inf\)

  • 图论题没说就要考虑自环和重边

  • 堆/队列/栈等一车查询/弹出之前一定要判不空

  • 部分分和特殊性质拆开写的时候注意数组大小不能共用一个 \(N\)

  • 'z' + 9 会爆 char

  • 忘记写特判

  • 判浮点数为 0 要用 eps

  • 分清楚啥时候用lower_bound啥时候用upper_bound

  • 树上背包外层循环倒序枚举

  • 二维偏序注意上限值域 注意可能值 0 的数据

  • 线段树区间查询记得判 \(u \le v\)

posted @ 2023-09-30 14:35  Steven24  阅读(19)  评论(0)    收藏  举报