【以前的空间】倍增

一、 在变化规则相同的情况下加速状态转移;

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、 后缀数组

 

posted @ 2017-03-02 19:07  Macaulish  阅读(215)  评论(0编辑  收藏  举报