复习笔记_ SDOI2018前的错误总结[翻车]

这里整理了一些最近的错误

  1. 求最大的ans没有取max????
  2. 线段树没有push_down就递归了???(上面两个都是特别困的时候犯的错误), 又犯了……………..
  3. 初始化数组的时候, 数组大小是MAXN, 结果初始化循环到了MAXN $\to RE$
  4. 想出思路一定要手玩样例! 而且要自己出样例卡!! 错误的思路对时间浪费更大!!!
  5. 如果这么写$\max$函数: #define max(a, b) ((a) > (b) ? (a) :(b)), 然后你又将函数的返回值当成变量放在了max()里, 而你的函数又恰好会对某些全局的值造成影响, 你就会发现你的值被改变了两次…$\to \mathrm {GG}(WA+TLE)$
  6. lazy标记看清楚: 覆盖是用=, 区间加是+=
  7. 分清楚节点的编号和其他的一些大小为n的数组内的数…
  8. 树链剖分while里比较的是if (ta[ta[x].top].deep < ta[ta[y].top].deep), 而不是if (ta[x].deep > ta[y].deep), (怎么感觉最近犯的错误越来越低级了…
  9. (b[dq].le + b[dq].ri) >> 1写成(le + ri) >> 1$\to \mathrm{GG}$(爆栈)
  10. priority_queue中的cmp如果是仿函数别忘了里面的大小比较是正好相反的…
  11. 反向边的编号计算应该是这样: #define bh(x, i) ((MAXN) * (i) + (x)), 而不是#define bh(x, i) ((MAXK) * (i) + (x)), 即注意每一次都是复制了一整张图…
  12. 谨慎用宏…改加的不该加的括号都想清楚了…能加就加上吧…反着你也背不过运算优先级…
  13. SA…居然能把last = i写成i = last…SA打的还是不是很熟…这两天再搞搞…
  14. SA把sa[tong[fir[i]]--] = i写成了sa[tong[fir[i]--]]…也许我应该在中括号之间加个空格啥的…fir数组你减个*啊…
  15. SPFA…inq[dq]忘了置成false…还有dq = q.front()后忘了q.pop()…我真是越来越傻逼了…
  16. $exgcd$ $ax + by = 1$最后$x$加上的是$b / \gcd$…不是$y / \gcd$…你求出的是$a, b$的$\gcd$…用$y$除是要闹哪样…果然我越来越傻逼了…
  17. $exgcd$ 最后是$y -= a / b * x$而不是什么奇奇怪怪的东西…过了这么长时间背的还是不熟啊…主要是不想做数论题
  18. 找负环的时候别忘了在dfs回溯的时候把当前节点的vis标记置为false, 防止横叉边被误判成负环