while(吃一堑);
用于记录做题过程中打出的唐诗操作。
-
线段树要调用
pushup。 -
动态开点要把空间开够。
-
二分乱搞之前先检查一下有没有单调性。
-
慎用
unordered_map。 -
分块不要忘记初始化。
-
调块长的时候块数也会跟着变,所以原本开的数组可能不够大。
-
使用快读时留意会不会爆
int,以及需不需要考虑负数。 -
用
fread快读或关流cin的话就要杜绝所有别的输入方式。 -
前向星存无向图要开两倍空间。
-
网络流的边号要从 \(0\) 开始,这样才能用
^1取到反边。 -
不要指望靠 O3 和 Ofast 的力量在 MZOJ 上 \(n^2\) 过百万。
-
如果离奇 TLE,优先排查是否某个地方考虑错了,而不是上来就开始卡常。
-
min和max不要宏定义。 -
序列分块的
loc数组要开到 \(n\) 而不是 \(\sqrt{n}\)。 -
数据规模上了 \(3\times 10^5\) 就不要优先考虑分块了。
-
往 OJ 上交代码的时候检查有没有去掉文件 IO。
-
多测题留意行末换行。
-
有 LCA 的题在卡常时可将倍增 LCA 换成 RMQ LCA。
-
bitset在访问下标不连续时可能会有负优化。 -
POJ 往往是多测且不一定会说明,如果莫名其妙地 WA 了优先考虑改成多测。
-
POJ 上只有 C++98,因此不能用
getchar()或getchar_unlocked()。 -
A* 跑 K 短路时最好把正向图和反向图分开建,以免因遇到老爷机而被卡常。
-
前向星存图最好把整个
head数组全部赋成 \(-1\),以免玄学虚点没有被初始化到。 -
跑同余最短路时记得检查模数是不是弄成了 \(0\)。

浙公网安备 33010602011771号