狄利克雷卷积前缀和

给定积性函数 \(f,g\),且已经得到 \(f,g\) 所有 \(\lfloor\frac{n}{i}\rfloor\) 处的前缀和 \(F,G\),现在要求 \(h=f*g\) 所有 \(\lfloor\frac{n}{i}\rfloor\) 处的前缀和。

简单推导后可得:

\[H(n)=\sum\limits_{i=1}^nf(i)G(\frac{n}{i}) \]

可以整数分块,对于所有的 \(\lfloor\frac{n}{i}\rfloor\) 来说,如果直接做的话,复杂度是:

\[\int _1^{\sqrt{n}}\sqrt{\frac{n}{x}}dx=n^{\frac{3}{4}} \]

实际上,我们可以利用杜教筛一样的预处理,对于所有 \(n^{\frac{2}{3}}\) 以内的 \(\lfloor\frac{n}{i}\rfloor\),全都预处理。这样的复杂度应该为:

\[\int _1^{n^{\frac{1}{3}}}\sqrt{\frac{n}{x}}dx=O(n^{\frac{2}{3}}) \]

由于 \(h\) 是积性函数,所以可以利用线性筛直接筛出来,预处理的部分复杂度也是 \(O(n^{\frac{2}{3}})\) 的。

posted @ 2023-07-13 21:06  NuclearReactor  阅读(90)  评论(0编辑  收藏  举报