注意事项

在这里列举一些代码中经常出错的问题。

  1. \(head\) 数组一定要初始化为 \(-1\)(如果死循环很有可能是这里的问题)

  2. 建图要考虑建双向边还是单向边。

  3. 有向图 \(Tarjan\) 的时候不要写成 if(u == dfn[u])

  4. 存图的数组要多开几倍。

  5. 函数名首字母尽量用大写,以防重名。

  6. \(double\) 计算时一定要考虑精度问题,特别是二分的时候。

  7. \(void\) 函数以外的函数一定要有返回值,特别是 \(bool\) 类型函数,不然会自动返回 \(0\)。检查返回值是否正确。

  8. STL 里的数据结构时间复杂度要带一个 \(\log\) 或者带一个常数,谨慎使用。

  9. \(1e9 + 7\) 的时候不要写成了模 \(1e9+10\)

  10. 直接枚举子集可能会 \(TLE\),可以这样优化for(int j = i & (i - 1);j;j = (j - 1) & i)

  11. 不要开 \(1e6\)\(deque\) 然后喜获 \(MLE\)

  12. 注意 \(memset\) 的用法,可能会 \(TLE\)。而且注意应该手动赋值还是用 \(memset\)

  13. \(sqrt\) 的时候,要注意精度误差之类的问题。

  14. 分块的时候注意是 \(i\) 还是 \(l\),是 \(i\) 还是 \(pos_{i}\),需不需要加/减懒标记。

  15. 分块的时候要分清自己要求的是块内的还是整个序列上的,需不需要减 \(lid_{i}\)

  16. 写分块或者线段树的时候记得写 \(init\)\(build\)

  17. 线段树注意 \(pushup\)\(pushdown\) 的位置,\(pushup\)\(build\)\(add\) 最后,而 \(pushdown\)\(add\)\(query\) 的中间。

  18. 注意计数题要不要取模,在什么地方取模,取模有没有取干净。

  19. 注意指针移动应该是 \(pos++\) 还是 \(++pos\)

  20. 树剖查询和修改往上跳的时候是 \(u=fa_{top_{u}}\) 而不是 \(u = top_{u}\)

  21. 线段树修改懒标记的时候应该 \(tree_{ls}.add+=tree_{id}.add\) 而不是 \(tree_{ls}.add=tree_{id}.add\)

  22. 当线段树既要区间加又要区间推平的时候注意懒标记的处理。

  23. \(double\) 类型返回值的函数不要写成 \(int\) 了。

  24. 注意做除法的时候要不要保留小数,有没有保留小数。

  25. 线段树记得开四倍空间(除非是查理线段树)。

  26. 模拟退火用 \(exp\) 算接受劣解的概率的时候注意有没有算反,有没有 \(delta = 0\) 的情况.

  27. 模拟退火或者其它时候生成 \(1-n\) 中的随机数是 rand() % n + 1 而不是 rand() % n

  28. 不要将 \(==\) 写成 \(=\),否则会赋值。

  29. 注意循环层数很多时要分清楚下标到底是谁,\(i\) 还是 \(j\) 还是 \(k\),不要弄混了。

  30. 按照双关键字排序的 \(cmp\) 函数是 y < t.y 而不是 x < t.y

  31. Atcoder 以及一些其它比赛不能用 \(size\) 作为变量名,会 CE。

  32. 写 Dinic 模板的时候很多函数都有返回值,记得返回对应的值。

  33. int 会比 long long 快无数倍,注意需要卡常的时候不要全局 long long。

  34. 用 double 可能会被卡精度,特别是用 double 存很大的 long long。

  35. \(\text{set}\) 的二分的时候要用 s.lower_bound(k) 而不是 lower_bound(s.begin(),s.end())。因为后者是 \(O(n)\) 的。

  36. 一定要把 #define int long long 写在代码的最前面,不然在这行代码前面的代码可能没有开 long long

  37. 不要写 p[++i] = a[i - 1] 这种代码,因为即可能会先执行 ++i 也有可能先算 i - 1

  38. long longpopcount 时要用 __builtin_popcountll()

  39. set 的时候注意是要用可重集还是不可重集。

posted @ 2023-12-19 11:51  Creeper_l  阅读(11)  评论(0编辑  收藏  举报
  1. 1 イエスタデイ(翻自 Official髭男dism) 茶泡饭,春茶,kobasolo
  2. 2 世间美好与你环环相扣 柏松
  3. 3 True love tired
  4. 4 一笑江湖 (DJ弹鼓版) 闻人听書_
  5. 5 最好的安排 曲婉婷
  6. 6 星星在唱歌 司南
  7. 7 山川 李荣浩
  8. 8 On My Way Alan Walker
  9. 9 百战成诗 王者荣耀·100英雄官方群像献礼歌
  10. 10 雪 Distance Capper / 罗言
  11. 11 Edamame bbno$ / Rich Brian
  12. 12 半生雪 七叔-叶泽浩
  13. 13 Catch My Breath Kelly Clarkson
  14. 14 Love Is Gone SLANDER / Dylan Matthew
  15. 15 Endless Summer Alan Walker / Zak Abel
  16. 16 悬溺 葛东琪
  17. 17 风吹丹顶鹤 葛东琪
  18. 18 Normal No More TYSM
  19. 19 哪里都是你 队长
  20. 20 Stronger Kelly Clarkson
  21. 21 廖俊涛
  22. 22 消愁 毛不易
  23. 23 The Runner Yubik
  24. 24 踏山河 七叔-叶泽浩
  25. 25 Waiting For Love Avicii
  26. 26 在你的身边 盛哲
  27. 27 Dream It Possible Delacey
  28. 28 凄美地 郭顶
  29. 29 满天星辰不及你 ycc
  30. 30 侧脸 于果
  31. 31 阿拉斯加海湾 蓝心羽
  32. 32 虞兮叹 闻人听書_
  33. 33 离别开出花 就是南方凯
  34. 34 盗墓笔记·十年人间 李常超 (Lao乾妈)
侧脸 - 于果
00:00 / 00:00
An audio error has occurred, player will skip forward in 2 seconds.