唐诗错误集
“怎么还是调不出来?”“半个小时了!!”“我怎么这么唐啊/ll” 久经 debug 沙场, 实在不忍再调那么久. 于是这篇记录便诞生了!!以后实在调不出来就看看()
-
kmp:
while (nxt[p] && s[p+1] != s[i])
应该为while (p && s[p+1] != s[i])
. -
线段树:
#define ls (1 << x)
应改为#define ls (x << 1)
. -
线性筛:
if (i*p > N || mn[i] < p) continue;
应改为if (i*p > N || mn[i] < p) break;
. -
眼瞎: 如 LCA 中
x = p[x][i], y = p[x][i]
应改为x = p[x][i], y = p[y][i]
. -
检查你的输入:如读入同一个数两遍
scanf ("%d%d%d", &u, &v, &v);
应改为scanf ("%d%d%d", &u, &v, &w);
; -
每次输入同一个数:
for (int i = 1; i <= n; i ++)
scanf ("%d", p + 1);
应改为
for (int i = 1; i <= n; i ++)
scanf ("%d", p + i);
);
-
类型错误. 如给
__int128
写输出时, 误写作void write (int x)
-
破环成链空间开二倍。
-
类型混用.
long double
与double
不要混着用。 -
FHQ-Treap 的随机答案问题。可能是
pushup
更新根节点信息时误将左右子树写成根节点(见 https://www.luogu.com.cn/record/list?pid=P3215&user=188850 调了 80min 血的教训)