学OI以来犯过的那些刻骨铭心的低级错误
(持续更新)
1.莫队的分块是对序列分块,对应是序列长度n而不是询问个数。
2.滚动数组只优化了空间,时间还是那么多。
3.SAM和广义SAM的空间复杂度都是2n。
4.unordered_map的常数巨大,不可忽视,理论O(1),但实际仍然接近O(log),unordered_set同理。
5.random_shuffle理论复杂度O(n),但它的基本操作是swap,常数非常大,用随机化算法时要注意。
6.如果不用namespace写分段的话,只要写了数组,不管这个部分分用没用到都会分配空间。
7.linux和windows下的换行不一样,读字符串老老实实用scanf()别用getchar()。
8.位运算多加括号,尤其是涉及'&'、'<<'、">>"的时候。
9.函数前面只有inline没有具体的类型在Dev中编译可过。
10.在递归函数中对全局数组sort向下递归前会存一个备份出来,直接mle。
11.计算指数需要取模时,注意根据降幂公式需要模 \(\phi(mod)\)。
12.输出字符串使用 for 循环按位输出,直接 printf("%s"); 有时候会出大问题。
13.李超树是可以维护二次函数的!
14.欧拉函数是可以拆的。

浙公网安备 33010602011771号