1. 1. 开 -Wall
  2. 2. 能救你一命
    1. 2.1. 多测清空:特别是建图,cnt清否?lnk清否?deg清否?
    2. 2.2. set:不能在 it 的 for 循环中 erase(it)
    3. 2.3. dp 要注意如果有 f[i] = min(f[i - j] + g[j]),注意判 f[i - j] + g[j] 会不会炸 long long(初始值是 1e18 的话会炸!!!)
    4. 2.4. 分母是否为 0?nan!
    5. 2.5. 取模模 0 了吗?RE!
    6. 2.6. 取模取对了吗?正负对了吗?最好输出前 (ans += mod) %= mod!
    7. 2.7. 字母打错了吗?
    8. 2.8. 空间开大了吗?哪怕卡着都不行!
    9. 2.9. 空间开小了吗?2e5 开了 1e5?
    10. 2.10. floor(x) 是小于等于 x 的最大整数,ceil(x) 是大于 x 的最小整数
    11. 2.11. C(n, m) 里写 if (n < m) return 0; 了吗?
    12. 2.12. __builtin_popcount() 不适宜计算 long long 类型的答案(不知道为啥)
    13. 2.13. double 题用 int 计算斜率/坐标了吗?
    14. 2.14. 输出 0 的输出 -1 了吗?输出 -1 的输出 0 了吗?
    15. 2.15. 变量重名了吗?外面 i 里面也是 i
    16. 2.16. SG函数使用的前提条件:对于任意局面,两个玩家的决策集合相同。
    17. 2.17. 递归函数里的变量(比如数组的项首)别开在全局
    18. 2.18. 注意 n、m 等主要变量的最大范围是否出现在同一档分里
    19. 2.19. 不要再不排序求前缀和了!!!💢💢💢
    20. 2.20. 线段树要记得 pushdown 和 update。。。
    21. 2.21. Tarjan 边双要记录入边
    22. 2.22. 数组 5e5 开成 1e5
    23. 2.23. 线段树 if (lx > rx) return;
    24. 2.24. 链式前向星 i = nxt[i] 老是写错。
    25. 2.25. vector .insert() O(n)
    26. 2.26. printf(“%lld”, 0)
    27. 2.27. mul() int 类型写成 void
    28. 2.28. a = b + c == d
    29. 2.29. $AB * AC > 0$(叉积)表示三角形 ABC 为逆时针
    30. 2.30. vector .size() 不想被卡常还是 int siz = xxx.size() 吧!
    31. 2.31. c[++tot] = c[tot - 1] + x; 💥
    32. 2.32. 答案可以小于 0 的题,初值赋为 0 了
    33. 2.33. string operator + 和 += 效率差别很大
    34. 2.34. memset 要写换行
    35. 2.35. 传参,传了 vector
    36. 2.36. void 写成 int,我也有今天
    37. 2.37. accumulate() 等函数 没有取模功能
    38. 2.38. 遍历 bitset 复杂度与 bitset 内部 1 的个数无关

【置顶】耻辱柱

开 -Wall

能救你一命


多测清空:特别是建图,cnt清否?lnk清否?deg清否?

set:不能在 it 的 for 循环中 erase(it)

dp 要注意如果有 f[i] = min(f[i - j] + g[j]),注意判 f[i - j] + g[j] 会不会炸 long long(初始值是 1e18 的话会炸!!!)

——wc2020 场外赛 25 pts$

分母是否为 0?nan!

——模拟赛 100 -> 0

取模模 0 了吗?RE!

——做题,wa 了 inf 次

取模取对了吗?正负对了吗?最好输出前 (ans += mod) %= mod!

——noi2020同步赛 D1T2 ?分

字母打错了吗?

——noi2020同步赛 D1T3 24 分,r1、r2 打成 c1、c2

空间开大了吗?哪怕卡着都不行!

——模拟赛 80 -> 0

空间开小了吗?2e5 开了 1e5?

——模拟赛 80 -> 50

floor(x) 是小于等于 x 的最大整数,ceil(x) 是大于 x 的最小整数

——模拟赛 fst 了一定分

C(n, m) 里写 if (n < m) return 0; 了吗?

__builtin_popcount() 不适宜计算 long long 类型的答案(不知道为啥)

真要用的话可以用 __builtin_popcountll()

double 题用 int 计算斜率/坐标了吗?

输出 0 的输出 -1 了吗?输出 -1 的输出 0 了吗?

——模拟赛 100 -> 60

变量重名了吗?外面 i 里面也是 i

SG函数使用的前提条件:对于任意局面,两个玩家的决策集合相同。

递归函数里的变量(比如数组的项首)别开在全局

——bzoj3636 调半天

注意 n、m 等主要变量的最大范围是否出现在同一档分里

——模拟赛的惨痛遭遇 挂 80pts

不要再不排序求前缀和了!!!💢💢💢

——模拟赛 100 -> 0

线段树要记得 pushdown 和 update。。。

Tarjan 边双要记录入边

数组 5e5 开成 1e5

——模拟赛 100 -> 60

线段树 if (lx > rx) return;

——模拟赛 100 -> 30

链式前向星 i = nxt[i] 老是写错。

——虫逢 T 成 sb

vector .insert() O(n)

printf(“%lld”, 0)

——BOOM!

mul() int 类型写成 void

——40 分 has gone!

a = b + c == d

——boom! 应该是 a = b + (c == d)。括号要勤加!

$AB * AC > 0$(叉积)表示三角形 ABC 为逆时针

——xml 记错了,浪费一小时,特此记录。

vector .size() 不想被卡常还是 int siz = xxx.size() 吧!

——订正某模拟赛 T3,在 90、95 pts 反复横跳

c[++tot] = c[tot - 1] + x; 💥

——应该是 c[tot + 1] = c[tot] + x, ++tot;

——靠,这个地方错了两三次了,每次都灵异事件,本地 AC 交上去 WA 光


虽然 xml 就快要退役了,但 sb 错误还是要记的!!

答案可以小于 0 的题,初值赋为 0 了

——答案文件:-324021706 你的输出:0

string operator + 和 += 效率差别很大

—— + 要新建一个对象然后赋值,+= 就直接拼过去了

memset 要写换行

——某 EC final J 题懒惰没换行,疯狂 TLE on 2……

传参,传了 vector

——TLE!要传指针形式的 vector,或者保险起见直接传 vector 的编号。

void 写成 int,我也有今天

——noi 2021 同步赛 20 分,花了好大力气写的 20 分就这么 RE 了 呜呜

accumulate() 等函数 没有取模功能

——xml 傻傻的不知道 爆负数的原因

遍历 bitset 复杂度与 bitset 内部 1 的个数无关

——啥也没发生,就是个 xml 的误区