OI 中常见问题的套路总结

  1. 遇到区间问题多想想差分,尤其是树上差分
  2. 树上边权转点权转移到儿子节点,但是特别注意多余信息处理(尤其是树剖的时候)
    比如树剖结束的时候处理最后一条重链,最顶端节点的答案不能处理进去(因为会有多余信息 ( t o p x , f a t o p x ) (top_x,fa_{top_x}) (topx,fatopx)
  3. 数据结构题不要只想 log ⁡ \log log 结构,分块它不香吗?根号分治它不香吗? 莫队它不香吗?
  4. 看到图论题先想一下这几个问题:图是否连通?有向图还是无向图?是否带权?有没有重边与自环?
  5. 遇到类似于 n n n 个东西分成两组,差最小等问题,不要总是想着一些奇奇怪怪的算法,如果就是个容量为 n 2 \dfrac{n}{2} 2n 的背包问题呢? 此时的体积和价值都是这 n n n 个东西的属性。
  6. 遇到矩阵问题不要老是想和矩阵有关的算法,有些时候或许只是道简单的图论。可能每个点是一个点,也可能一列一行是一个点,都有可能。
  7. 如果没有特殊情况,尽量使用 vector 存边。如果要使用链式前向星(比如网络流),看清楚是有向图还是无向图,无向图空间要开 2 倍!

猜你喜欢

转载自blog.csdn.net/BWzhuzehao/article/details/114667127
OI
今日推荐