ruozhi 小错误

弱智错误记录

前言

2024.08.03 从 2024.08.03 开始记载,旧账就不记了。

2024.09.23 我最擅长的事情就是写 bug 了。期望 400pts400pts,实际 220pts220pts,比 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(n2)O(n^2) 级别的了。
2024.10.18 写 (long long)=(int)*(int) 没有开 1ll
2024.10.21 线段树函数 maketag 参数没开 long long,喜获 95pts95pts
2024.10.17 将 long long 类型数组 memset0x3f,然而判断相等的时候 inf=0x3f3f3f3f,是 int 类型的常量。
2024.11.18 差积没有开 long long。
2025.2.10 题目满足输入和输出在 int 范围内,我以为出题人会友好地让过程也在 int 范围内。
2025.2.11 线段树 long long 类型的 query 函数,中间变量没有开 long long

左移右移溢出

2024.09.23 写了个 1<<O(1e5) 的东西。
2024.09.23 写了个 1>>32
2024.10.05 写了个 n>>k,其中 k105k \le 10^5

看错题

2024.09.10 把输出最大值看成输出编号,关键还过了样例。
2024.09.23 t1 没看到向下取整。
2024.10.07 没看到 (x,y)(x,y) 在花园里,以为可以出界。
2024.10.09 雨天的尾巴把值域看成了 nn
2024.11.20 无解输出 IMPOSSIBLE,我输出了 -1
2024.11.29 没看到题目写着操作只能对长度至多为 33 的区间进行,导致以为是不可做题(虽然确实是不可冲正解题)。
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) 定义里面 aa 没有加引用。
2024.02.15 把 _mul 写成 mul

忘记取模

2024.11.26 线段树 pushup 一个地方忘记取模。

变量名

2024.08.04 ii 写成 jj
2024.08.06 uu 写成 ii
2024.09.19 bb 写成 aa
2024.10.14 vv 写成 uu
2024.10.18 valval 写成 ww
2024.10.22 wawa 写成 caca
2024.10.30 mm 写成 nn
2024.11.1 结构体内变量名 cntcnt 与全局变量重名,::cnt::cnt 写成 cntcnt
2024.11.26 模数 pp 与结构体中 zkw 线段树的虚点 pp 变量名冲突。
2025.02.25 两层循环都使用变量名 ii

写错类型

2024.09.14 把字典树的儿子数组写成了 char,鉴定为有 2626 个字母儿子且变量名为 chch 误导导致。

数组没开够

2024.09.12 把 100100 % 3×1053\times 10^5 看成部分分的 1×1051\times 10^5 了。
2024.09.19 由于有多个常量,把某个数组开成了另一个大小。
2024.09.22 FFT 数组没开两倍。
2024.09.23 cntcnt 数组应该开 log2=32\log_2=32 个,然后我开了 2020
2024.01.03 n1100,ni2n1n_1 \le 100,n_i \le 2n_1,因此 ni200n_i \le 200
2025.01.03 终点的坐标的取值范围,除了考虑起点坐标,不要忘了考虑操作的影响。
2025.2.10 线段树没开 44 倍。
2025.3.2 省选 Day2 t2 数组没有开够挂了 12pts12pts。无向图的边应当是 n2n^2 而不是 O(n)O(n) 的。

下标越界

2024.10.05 只开了 nn 的数组,忘记判 len=nlen=n 的情况,导致出现了 len+lenlen+len 的下标。
2024.12.19 树上背包问题,加入点 uu 时没有判点 uu 的体积是否越界。

corner cases

2025.02.15 没判 n=1n=1

时间复杂度写假

2024.10.10 不小心套了个快速幂导致多一只 log\log
2025.02.25 注意 resize nn 的空间时间复杂度也是 O(n)O(n) 的。

时间复杂度估算错误

2024.09.14 在字典树上查找有多少个单词属于一个字符串的后缀,由于所有单词的长度不超过 NN,最多只有 N\sqrt{N} 个单词。
2024.11.26 i=1mmi=mlogm\sum_{i=1}^m \frac{m}{i} = m \log m。没看出是调和级数,我以为是 m2m^2 级别。

初始化

2024.08.04 多测不初始化。
2024.09.23 分块重构块 tagtag 忘记初始化为 00
2024.12.17 有两处忘记清空桶。
2025.01.02 重载矩阵乘法运算符,临时变量没有清零。
2024.02.11 线段树非叶子结点的 max,min\max,\min 标记没有初始化。

初值问题

2024.09.10 写 aiai1a_i\not = a_{i-1} 的条件,且 a1=0a_1=0,下标从 11 开始,忘记给 a0a_0 赋值为 1-1
2024.10.24 整除分块,忘记第一次扫到值 T\ge T 的时候需要将指针初始为 11
2024.11.03 线段树乘法懒标记没有初始化为 11

语法不熟悉

2024.09.22 sizeof 长度忘记乘上类型所占字节数。
2024.11.20 queue 默认初始空间是 3232 个单位,不可以在任意时刻开 4×1064 \times 10^6queue,否则程序会卡住并被杀死。

算法板子打错

2024.09.09 分解质因数忘记 >n>\sqrt{n} 的那个质因数。
2024.09.23 NTT 求 revrev 数组把 len-1 写成了 1<<(len-1)
2024.10.14 Dijkstra 优先队列优化松弛操作先 push 再修改 dis,并且调了一个晚上。
2024.10.22 线段树区间查询结束递归条件写成了单点查询的 l==r
2024.11.13 埃氏筛标记合数的时候把 j++ 写成了 j+=i,原因是把标记 jj 和标记 i×ji\times j 的两种写法搞混了。
2025.01.03 求组合数 (nm)\binom{n}{m} 的时候,判无解除了 n<mn<m 的情况,还需要考虑 n<0,m<0n<0,m<0 的情况。
2025.02.14 树上启发式合并遍历轻儿子时忘记判掉重儿子。
2025.02.18 dinic 算法的当前弧优化应当是在循环里面写 cur[u]=i,如果将 ii 定义为 curucur_u 的引用,时间复杂度会假。

混淆

2024.11.28 把 (n>>1)+1 写成了 n>>1|1,和 n<<1|1 的线段树写法搞混了。
2024.02.15 求 WW 的幂的线性逆元时,把乘上 WW 写成阶乘逆元的乘上 i+1i+1

抽象做法/算法理解不透彻

2024.11.26 只有单点、区间加,最后才有一次询问的不需要线段树,可以直接差分前缀和。
2024.12.17 使用无符号自然溢出作为因数含有 2210510^5 次幂的 hash 模数。
2024.12.30 fhq 平衡树合并会改变结点的儿子关系,所以找子树的最大或最小值需要先找完再和另外一棵树合并。
2024.01.03 使用无符号自然溢出作为判定行列式是否为 00 的模数,一旦出现 22 的很多倍相乘,就会全部是 00
2025.01.09 认为把一条边拆成两条边,计算最小生成树的时候会算到重边。

posted @ 2024-08-13 21:13  wing_heart  阅读(42)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
点击右上角即可分享
微信分享提示