唐诗错误集

“怎么还是调不出来?”“半个小时了!!”“我怎么这么唐啊/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 doubledouble 不要混着用。

  • FHQ-Treap 的随机答案问题。可能是 pushup 更新根节点信息时误将左右子树写成根节点(见 https://www.luogu.com.cn/record/list?pid=P3215&user=188850 调了 80min 血的教训)

posted @ 2025-03-22 17:15  Toorean  阅读(26)  评论(0)    收藏  举报