一、线段树要开四倍空间
二、最终代码应去掉所有 assert
三、后缀数组分清 \(n\) 和 \(m\)
四、判断 \(l > r\)
五、虚树清空时不仅要清空关键点,也要清空额外加的点
六、有 long long 时要注意是不是所有应开的地方都开了
七、有些时候口胡的做法应该去写,把思路具体化
八、有些时候口胡的做法不应该去写,浪费时间
九、维护凸包的时候需要按第一关键字排序后按第二关键字排序,否则用叉积弹栈时可能会在形如 \((x, y_3) (x, y_1) (x, y_2)\),其中 \(y_1 < y_2 < y_3\) 的时候挂掉,因为此时叉积为 \(0\)。
十、当循环嵌套若干层时,分清 continue 和 break
十一、计数 dp 刷表的时候分清 \(i\) 和 \(i - 1\)
十二、C++ 的除法向零取整,注意负数的特殊处理
十三、\(|x - y| = \max\{x - y, y - x\}\)
十四、多测清空
十五、回退一次不需要可持久化
十六、dfs 中全局数组可能会在更深层被覆盖,这时候需要在本层开临时数组