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