万能的倍增

NOIP前瞎扯 涨RP?

一下内容都是瞎扯,可以跳过。

倍增是一种非常好的技巧

尤其是一些不带修改的题

对于一个操作@

如果@满足a@a=a

那么就可以使用稀疏表的思想O(1)维护@操作

例如区间最大最小经典的静态RMQ问题

区间静态gcd问题

区间取or,区间取and

但是想加法,减法还有xor这种不满足a@a=a

我们也可以倍增处理

先预处理之后

能在log复杂度内求倍增求区间加法,区间xor

当然其实最快的方法是前缀和,前缀和是O(1)的

不过对于a@a=a并且不支持逆元的,用倍增维护比较快

倍增还用来求LCA 太常见了

倍增还可以写二分,查询序列某数是否存在

感觉有点像某种意义上牛蹲迭代法弱化版

posted @ 2018-11-06 19:51  ghj1222  阅读(136)  评论(1编辑  收藏  举报