while(吃一堑);

用于记录做题过程中打出的唐诗操作。

  1. 线段树要调用 pushup

  2. 动态开点要把空间开够。

  3. 二分乱搞之前先检查一下有没有单调性。

  4. 慎用 unordered_map

  5. 分块不要忘记初始化。

  6. 调块长的时候块数也会跟着变,所以原本开的数组可能不够大。

  7. 使用快读时留意会不会爆 int,以及需不需要考虑负数。

  8. fread 快读或关流 cin 的话就要杜绝所有别的输入方式。

  9. 前向星存无向图要开两倍空间。

  10. 网络流的边号要从 \(0\) 开始,这样才能用 ^1 取到反边。

  11. 不要指望靠 O3 和 Ofast 的力量在 MZOJ 上 \(n^2\) 过百万。

  12. 如果离奇 TLE,优先排查是否某个地方考虑错了,而不是上来就开始卡常。

  13. minmax 不要宏定义。

  14. 序列分块的 loc 数组要开到 \(n\) 而不是 \(\sqrt{n}\)

  15. 数据规模上了 \(3\times 10^5\) 就不要优先考虑分块了。

  16. 往 OJ 上交代码的时候检查有没有去掉文件 IO。

  17. 多测题留意行末换行。

  18. 有 LCA 的题在卡常时可将倍增 LCA 换成 RMQ LCA。

  19. bitset 在访问下标不连续时可能会有负优化。

  20. POJ 往往是多测且不一定会说明,如果莫名其妙地 WA 了优先考虑改成多测。

  21. POJ 上只有 C++98,因此不能用 getchar()getchar_unlocked()

  22. A* 跑 K 短路时最好把正向图和反向图分开建,以免因遇到老爷机而被卡常。

  23. 前向星存图最好把整个 head 数组全部赋成 \(-1\),以免玄学虚点没有被初始化到。

  24. 跑同余最短路时记得检查模数是不是弄成了 \(0\)

posted @ 2025-10-10 16:41  DX3906_ourstar  阅读(4)  评论(0)    收藏  举报