ruozhi 小错误
弱智错误记录
前言
2024.08.03 从 2024.08.03 开始记载,旧账就不记了。
2024.09.23 我最擅长的事情就是写 bug 了。期望 \(400pts\),实际 \(220pts\),比 CSP-J2023 挂得还猛。
2024.09.30 回顾了两个月的弱智记录,真是很有意思,足够抽象。ssyx 座右铭不敢写不开 long long 见祖宗和菜就多练是多么遗憾的事情。可惜 ssyx 当年没有能懂我这个座右铭的朋友。
2024.10.30 静态查错成功率太低,主要是我特别眼瞎。还是选择手模小样例查错法吧,虽然比较麻烦。或者选择先静态查错再手模小样例的方法。
2024.11.01 发现好像写错变量名才是最常见的错误,不过也许是因为这种错误小样例就可以查出来,不像没开 long long 那么难查,因此这种错误相对不那么被大家厌恶吧。
2025.02.10 有一段时间忘记记录了,那就从今天开始继续吧!
2025.02.25 发现静态查错能力提高了不少,我认为是打 ABC 的功劳。
记录
不开 long long 见祖宗!
- 2024.09.12 写打表程序,由于数字之间是空格,故再写一个程序把空格转为
,,然后这个程序没开 long long,且原程序的存表数组也没开…… - 2024.09.13 存逆序对个数忘记个数是 \(O(n^2)\) 级别的了。
- 2024.10.18 写
(long long)=(int)*(int)没有开1ll。 - 2024.10.21 线段树函数 maketag 参数没开 long long,喜获 \(95pts\)。
- 2024.10.17 将
long long类型数组memset成0x3f,然而判断相等的时候inf=0x3f3f3f3f,是int类型的常量。 - 2024.11.18 差积没有开 long long。
- 2025.02.10 题目满足输入和输出在
int范围内,我以为出题人会友好地让过程也在int范围内。 - 2025.02.11 线段树
long long类型的query函数,中间变量没有开long long。 - 2025.09.22 输入数据 \(k\) 的取值范围是 \(O(N^2)\) 的。
左移右移溢出
- 2024.09.23 写了个
1<<O(1e5)的东西。 - 2024.09.23 写了个
1>>32。 - 2024.10.05 写了个
n>>k,其中 \(k \le 10^5\)。
看错题
- 2024.09.10 把输出最大值看成输出编号,关键还过了样例。
- 2024.09.23 t1 没看到向下取整。
- 2024.10.07 没看到 \((x,y)\) 在花园里,以为可以出界。
- 2024.10.09 雨天的尾巴把值域看成了 \(n\)。
- 2024.11.20 无解输出
IMPOSSIBLE,我输出了-1。 - 2024.11.29 没看到题目写着操作只能对长度至多为 \(3\) 的区间进行,导致以为是不可做题(虽然确实是不可冲正解题)。
- 2025.02.25 题目输入每个节点的父亲编号,我以为是输入每条边。
文件读写
- 2024.08.03
stdout\(\to\)stdin。 - 2024.09.29 都怪 Dev 的缺省源,害我没改文件读写直接关掉
LOCAL交了题目。文件读写写的还是in.txt my.out。 - 2025.02.25 写了
freopen("my.out","r",stdout);。
调试代码
- 2024.08.04 提交不注释调试代码。
小笔误
- 2024.09.06 因为一个
=写成了+=调了好几天 - 2024.11.04 把
while写成了if。 - 2024.11.15 把
++写成了--。 - 2024.11.19 把
b[i]写成了i。 - 2024.11.29 把
_add()写成add()。 - 2024.09.09
_add(a,b)定义里面 \(a\) 没有加引用。 - 2024.02.15 把
_mul写成mul。 - 2025.09.02 把
+打成=:dep[u]=dep[f]=1;。 - 2025.09.02 把
tp打成u:top[u]=u。 - 2025.09.02 将
p[i+1]写成p[i]+1。 - 2025.09.02 没写
st.pop()。 - 2025.11.19 把
while写成if了。
忘记取模
- 2024.11.26 线段树 pushup 一个地方忘记取模。
变量名
- 2024.08.04 \(i\) 写成 \(j\)。
- 2024.08.06 \(u\) 写成 \(i\)。
- 2024.09.19 \(b\) 写成 \(a\)。
- 2024.10.14 \(v\) 写成 \(u\)。
- 2024.10.18 \(val\) 写成 \(w\)。
- 2024.10.22 \(wa\) 写成 \(ca\)。
- 2024.10.30 \(m\) 写成 \(n\)。
- 2024.11.1 结构体内变量名 \(cnt\) 与全局变量重名,\(::cnt\) 写成 \(cnt\)。
- 2024.11.26 模数 \(p\) 与结构体中 zkw 线段树的虚点 \(p\) 变量名冲突。
- 2025.02.25 两层循环都使用变量名 \(i\)。
写错类型
- 2024.09.14 把字典树的儿子数组写成了 char,鉴定为有 \(26\) 个字母儿子且变量名为 \(ch\) 误导导致。
数组没开够
- 2024.09.12 把 \(100\%\) 的 \(3\times 10^5\) 看成部分分的 \(1\times 10^5\) 了。
- 2024.09.19 由于有多个常量,把某个数组开成了另一个大小。
- 2024.09.22 FFT 数组没开两倍。
- 2024.09.23 \(cnt\) 数组应该开 \(\log_2=32\) 个,然后我开了 \(20\)。
- 2024.01.03 \(n_1 \le 100,n_i \le 2n_1\),因此 \(n_i \le 200\)。
- 2025.01.03 终点的坐标的取值范围,除了考虑起点坐标,不要忘了考虑操作的影响。
- 2025.2.10 线段树没开 \(4\) 倍。
- 2025.3.2 省选 Day2 t2 数组没有开够挂了 \(12pts\)。无向图的边应当是 \(n^2\) 而不是 \(O(n)\) 的。
- 2025.6.12 最后存答案的数组应该开 \(N^2\),我开成了 \(N\)。以后编译时一定开
-fsanitize。
下标越界
- 2024.10.05 只开了 \(n\) 的数组,忘记判 \(len=n\) 的情况,导致出现了 \(len+len\) 的下标。
- 2024.12.19 树上背包问题,加入点 \(u\) 时没有判点 \(u\) 的体积是否越界。
边界条件
- 2025.02.15 没判 \(n=1\)。
- 2025.07.23 判
<=写成了=。 - 2025.09.03 没判 \(cnt=1\)。
- 2025.10.08 答案最小可以取到 \(0\) 而不是 \(1\)。
时间复杂度写假
- 2024.10.10 不小心套了个快速幂导致多一只 \(\log\)。
- 2025.02.25 注意
resize\(n\) 的空间时间复杂度也是 \(O(n)\) 的。 - 2025.07.18 Dijkstra 的总边数在变换建图之后从 \(O(m)\) 变成 \(O(m^2)\) 了。
时间复杂度估算错误
- 2024.09.14 在字典树上查找有多少个单词属于一个字符串的后缀,由于所有单词的长度不超过 \(N\),最多只有 \(\sqrt{N}\) 个单词。
- 2024.11.26 \(\sum_{i=1}^m \frac{m}{i} = m \log m\)。没看出是调和级数,我以为是 \(m^2\) 级别。
- 2025.07.22 小常数 2e8 可以过 3s。大概是 1e8 用时 1s。
- 2025.11.17 把 1e4 级别看成了 1e5 级别。
初始化
- 2024.08.04 多测不初始化。
- 2024.09.23 分块重构块 \(tag\) 忘记初始化为 \(0\)。
- 2024.12.17 有两处忘记清空桶。
- 2025.01.02 重载矩阵乘法运算符,临时变量没有清零。
- 2024.02.11 线段树非叶子结点的 \(\max,\min\) 标记没有初始化。
- 2025.07.21 多测线段树只清空了叶子结点。
- 2025.10.07 基数排序 \(cnt\) 数组需要清空(因为有前缀和)。
- 2025.10.15 树形 DP 记录前面兄弟的标记开了全局变量。
初值问题
- 2024.09.10 写 \(a_i\not = a_{i-1}\) 的条件,且 \(a_1=0\),下标从 \(1\) 开始,忘记给 \(a_0\) 赋值为 \(-1\)。
- 2024.10.24 整除分块,忘记第一次扫到值 \(\ge T\) 的时候需要将指针初始为 \(1\)。
- 2024.11.03 线段树乘法懒标记没有初始化为 \(1\)。
- 忘记写
siz[u]=1。
混淆
- 2024.11.28 把
(n>>1)+1写成了n>>1|1,和n<<1|1的线段树写法搞混了。 - 2024.02.15 求 \(W\) 的幂的线性逆元时,把乘上 \(W\) 写成阶乘逆元的乘上 \(i+1\)。
- 2025.10.08 普通线段树的
change需要pushdown和pushup,而query只需要pushdown。 - 指数不可以对 \(mod\) 取模,而是应该对 \(mod-1\) 取模。
语法/算法不熟悉
- 2024.09.22
sizeof长度忘记乘上类型所占字节数。 - 2024.11.20
queue默认初始空间是 \(32\) 个单位,不可以在任意时刻开 \(4 \times 10^6\) 个queue,否则程序会卡住并被杀死。 - 2025.09.22 埃氏筛时间复杂度是 \(O(n \log \log n)\)。(初赛知识点)
- 2025.09.29
modint里面使用unsigned,减法要先加再减。
算法板子打错
- 2024.09.09 分解质因数忘记 \(>\sqrt{n}\) 的那个质因数。
- 2024.09.23 NTT 求 \(rev\) 数组把
len-1写成了1<<(len-1)。 - 2024.10.14 Dijkstra 优先队列优化松弛操作先 push 再修改 dis,并且调了一个晚上。
- 2024.10.22 线段树区间查询结束递归条件写成了单点查询的
l==r。 - 2024.11.13 埃氏筛标记合数的时候把
j++写成了j+=i,原因是把标记 \(j\) 和标记 \(i\times j\) 的两种写法搞混了。 - 2025.01.03 求组合数 \(\binom{n}{m}\) 的时候,判无解除了 \(n<m\) 的情况,还需要考虑 \(n<0,m<0\) 的情况。
- 2025.02.14 树上启发式合并遍历轻儿子时忘记判掉重儿子。
- 2025.02.18 dinic 算法的当前弧优化应当是在循环里面写
cur[u]=i,如果将 \(i\) 定义为 \(cur_u\) 的引用,时间复杂度会假。 - 2025.07.19 Dijkstra 存进优先队列的 dis 不能改!否则会影响排序的正确性!
- 2025.09.02 重剖找 LCA 中:
if(dep[u]<dep[v]) swap(u,v);,应该为if(dep[top[u]]<dep[top[v]]) swap(u,v);。 - 2025.10.08 建圆方树
pop栈的时候,应该pop到 \(v\) 为止,而不是 \(u\)。 - 2025.10.15 动态开点线段树加法标记,忘记将标记乘以元素个数。
- 2025.10.15 动态开点线段树下放标记没有判空节点,且上传时也没有判空节点(应当至少在其中之一判)。
- 2025.10.15 线段树合并,需要判 \(u1,u2\) 均为空。
- 倍增应该倒序枚举 \(k\)。
抽象做法/算法理解不透彻
- 2024.11.26 只有单点、区间加,最后才有一次询问的不需要线段树,可以直接差分前缀和。
- 2024.12.17 使用无符号自然溢出作为因数含有 \(2\) 的 \(10^5\) 次幂的 hash 模数。
- 2024.12.30 fhq 平衡树合并会改变结点的儿子关系,所以找子树的最大或最小值需要先找完再和另外一棵树合并。
- 2024.01.03 使用无符号自然溢出作为判定行列式是否为 \(0\) 的模数,一旦出现 \(2\) 的很多倍相乘,就会全部是 \(0\)。
- 2025.01.09 认为把一条边拆成两条边,计算最小生成树的时候会算到重边。
- 2025.09.13 不知道为什么认为 bitset 位运算的时间复杂度是 \(O(\frac{n^2}{w})\) 的。
- 2025.10.15 集合内事件至少发生一个的概率等于 \(1\) 减去集合内事件都不发生的概率。而不是往死里容斥……
这属于哪类?
- 2025.09.27 复制文件夹时没复制到,于是提交了空的文件夹至 ftp。
本文来自博客园,作者:wing_heart,转载请注明原文链接:https://www.cnblogs.com/wingheart/p/-/shit

浙公网安备 33010602011771号