假设我们要求S(n)且有S(n)=∑i=2nS(⌊in⌋)
于是我们要求在整除分块优化下的时间复杂度,只需要求出n个S(⌊in⌋)的值就行了
假设计算出S(n)的复杂度为T(n),则有
T(n)=Θ(n)+i=2∑n(T(i)+T(in))其中Θ(⌊n⌋)是累加也就是合并的时间
这里其实只用展开一层就行了,因为在往下就是高阶小量,所以有
T(n)=Θ(n)+i=2∑n(Θ(i)+Θ(⌊in⌋))=Θ(n43)∵Θ(i)+Θ(⌊in⌋)>=2n=2n41
∴n(Θ(i)+Θ(⌊in⌋))>=2n43
又由于可以用筛法处理一部分,假设处理了前k个前缀和,且k>=n,则T(n)=i=2∑knΘ(⌊in⌋)=Θ(kn)当k取到Θ(n32)时能取到较优秀的时间复杂度Θ(n32)