小技巧——语法
Part1
经常在表示 \(2^n\) 时使用 \((1<<n)\)。
但不幸的是,它在 \(long long\) 范围会溢出!
难道只能手写快速幂了吗?
不,改成 \((1ll<<n)\) 就行了。
Part2
经常会用 \(memset\) 来清空数组。
有时候我们不需要清空整个数组,就会手动清空。
其实同等长度下 手动清空 的常数大约为 \(memset\) 的 3.5 倍(也挺快的)。
另外 \(STL\) 提供了函数 \(fill\):
fill(a+1,a+n+1,0)
分别为指针和数值,差不多和手动清空一样快。
\(fill\) 函数包含在 \(algorithm\) 头文件里。

浙公网安备 33010602011771号