一、 在变化规则相同的情况下加速状态转移;
1、 快速幂
2、 推广,满足两个规则即可:
① 每次的变化规则必须相同;
② 变化规则必须满足结合律。
可用于减少乘法个数或者加法个数
二、 加速区间操作。
在区间操作中运用倍增思想的一般模式:
预处理:
对于区间中每一个点A,记录[A,A+20-1],[A,A+21-1],[A,A+22-1],……[A,A+-1] ,这(+1)个区间的性质。在记录的过程中,按照区间长度依次求解(也可以按照点的顺序求解,下文中求树上最近公共祖先的例题中将会有所介绍)。设要求[A,A+22i-1]的性质,则可以通过已知结果[A,A+2i-1]与[A+2i, (A+2i)+ 2i-1]得到有关性质。
取用:去区间[A,B]
1、 区间的重叠对于所需结果无影响,可用[A,A+log2(B-A+1)-1]与[B-log2(B-A+1)+1,B]区间的共同结果。
2、 如果区间的重叠对于所需结果有影响,可用将区间分为长度为log2(B-A+1)、log2(B-A+1)-1、log2(B-A+1)-2、……1个区间。
1、 St算法
2、 Lca倍增写法
3、 后缀数组