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