sb合集

开个坑,记录一些自己的sb错误。

\(\text{Think twice, Code once.}\)

最后检查的时候开 \(\texttt{-Wall}\)!!!
最后检查的时候开 \(\texttt{-Wall}\)!!!
最后检查的时候开 \(\texttt{-Wall}\)!!!

  • \(\Huge \rm{Tarjan!!!}\)

  • 不要看错题。不然会寄惨。

  • 不要将 \(n, m, k, q\) 之类的看混了(哪个是长度,哪个是询问数,哪个是权值范围)。

  • 小心宇宙射线,他可能会让你的代码变成这样:

for(int j = 0; j < n; j *= 2);
  • \(\tt std::set\)\(\tt Node\) 的时候要谨慎,因为如果两个 \(\tt Node\) 不一样但是 $\tt operator == $ 判断他们相等,那么后插入的元素就会被吃掉。
  • 时刻取模,不然可能喜提 0pts 的好成绩。
  • 线段树时时刻刻都要 pushup 或者 pushdown。
  • 不要为了好玩(滥用)将主函数的东西用结构体构造函数写。
  • STL 空间常数比较大,典型的例子就是用 vector 存 1e6 的图遇到 125MB 可能会 MLE(当然正式比赛应该不会有这个问题)。
  • 注意STL(主要是vector 和 set)迭代器失效问题带来的 RE。
  • \(\rm !Important\) 想起来开 \(\tt LL\) 了一定要把 \(\tt scanf\) 改成 \(\tt \%lld\) !!!(CSP-S 云游 -90pts)
  • 注意:
ans += 1LL * (sz[u] * sz[u]); // NO, this will first calculate sz[u] * sz[u] with typename int, which result will cause signed integer overflow.
ans += 1LL * sz[u] * sz[u]; // YES. When the second sz[u] is calculated, it's considered as LL.
  • 写快了可能导致 \(\tt -=\) 写成了 \(\tt =-\),变成了负号!看着真的像宇宙射线带来的数据异变!
  • 存图的时候 \(\tt adde\) 函数已经双向建边了就不要再调用两次了。
  • submit 的时候注意 \(\tt freopen\) 以及有没有多余的输出。
posted @ 2022-10-28 12:14  badFlamesへ  阅读(79)  评论(0编辑  收藏  举报