各类常犯的错误总结

  1. 空间开小或开爆
  2. 求和忘记开\(long~long\)
  3. 有些只在函数里用的STL就尽量开在函数里,容易忘记清空
  4. 数字之间异或的时候有可能会超过原本的值域范围
  5. 需要维护区间和的线段树中,凡是和线段树的点值有关的变量都要开\(long~long\)
  6. 在离散化的时候,不要把原序列长度和离散化之后的长度搞混
  7. 在二分的时候,如果当前已经能够确定是否满足条件,就要及时\(return\) 不然鬼晓得会爆成什么鬼样子
  8. 不要怀疑一些算法的必要性,不要总想着发明一些新的算法
  9. 注意仙人掌是缩点双,仙人球才是缩边双
  10. 注意看题要不要判无解
  11. 注意一定要仔细看清题再打
  12. \(tarjan\)\(vis\)标记要打在处理询问之前
  13. 线段树合并的时候,忘记把\(merge\)函数的返回值赋给\(rt[now]\)
  14. 不要开一些\(vector\)数量大于元素数量的多维\(vector\)
  15. 造极限数据的时候不要只生成刚好和极限一样的数据,试了一组极限数据之后要把\(gen\)改成在极限附近波动
  16. 记住一定要按\(F12\)
  17. 不要乱开什么容斥期望题
  18. 考试的时候去做难题的时候一定要先拿稳简单题的分(联赛再次吃亏)
  19. 方便打\(gen\)和细节多的题一定要拍,查细节错误可以小数据对拍
  20. 分块的时候不要忘了特殊处理操作在一个块内部的情况
  21. 有时候开多棵线段树的常数太大,可以把他们合成一颗线段树维护多个值
  22. 注意输入的序列长度是\(n\)还是\(2 \times n\)
  23. 注意考试结束之前要检查数据分治是否正确
  24. 注意循环变量不要重复
  25. 注意多组数据要检查是否清空
  26. 一定要注意模数
  27. 在测试部分分的时候,要把暴力去掉
  28. 在对\(long~long\)取模的时候,要先模再加再模
  29. 在使用\(string\)类的时候,要注意操作位置的范围,防止\(MLE\)
  30. 注意有多组数据测试的时候,数组尽量都清空,不然有可能会出现什么奇奇怪怪的错误
  31. 注意保证\(\sum\)的题,每次只要清空到当前的范围就可以,不然有可能会T
  32. 注意小数据是否要特判
  33. 注意\(floyd\)对于重边要\(chkmin\)
  34. 一定要注意给的图是有向图还是无向图
  35. __builtin_ctz最好写成(x ? __builtin_ctz(x) : 32),不然可能会出事
posted @ 2018-09-28 16:05  xunzhen  阅读(281)  评论(0编辑  收藏  举报