do_while_true

一言(ヒトコト)

一个筛法问题

来自 qwaszx。

如果 \(f(i)\) 是积性函数,想要求解 \(\sum_{i=1}^nf(ix)\) 的值。之前遇到过这个问题,是 \(f=\varphi\)\(\mu^2(x)=1\) 的情况,现在来看一下通解应该怎么处理,先看看 \(\mu\) 咋做。

假设 \(\mu^2(x)=1\)\(\mu(ix)\) 并不是积性函数,但我们想处理积性函数,于是当 \(i\bot j\) 时观察 \(\mu(ix)\mu(jx)\)\(\mu(ijx)\)\(i,j\) 其中一个与 \(x\) 不互质那么两侧都是 \(0\);否则 \(i,j,x\) 两两互质,那么左侧是 \(\mu(i)\mu(j)\mu(x)\mu(x)\),右侧是 \(\mu(i)\mu(j)\mu(x)\),于是令 \(g(i)=\mu(ix)/\mu(x)\),那么 \(g(i)\) 就是一个积性函数了。

然后去考察 \(g\) 的贝尔级数,若 \(p\nmid x\),那么 \(g_p(z)=1-z\),若 \(p\mid x\) 那么 \(g_p(z)=1\)

凑杜教筛,另设积性函数 \(h\),若 \(p\nmid x\),那么 \(h_p(z)=\frac{1}{1-z}\),若 \(p\mid x\) 那么 \(h_p(z)=1\),此时 \(h(i)=[\gcd(i,x)=1]\),称其为 \(\mathbf{1}_x\)

所以现在有 \(g*\mathbf{1}_x=\epsilon\),如果能够求 \(\mathbf{1}_x\) 在所有 \(\left\lfloor\frac{n}{i}\right\rfloor\) 位置处的前缀和就可以杜教筛 \(g\) 了,\(\sum_{i=1}^n\mathbf{1}_x(i)=\sum_{d|x}\left\lfloor\frac{n}{d}\right\rfloor\),整除分块的时候要求 \([l,r]\) 内有多少 \(x\) 的因子,注意到所有 \(r\) 都是 \(n\) 的基本和组,那么将这 \(\mathcal{O}(\sqrt n)\)\(\left\lfloor\frac{n}{i}\right\rfloor\)\(x\) 的所有质因子排序预处理前驱后继,这样就能在 \(\mathcal{O}(\sqrt n)\) 的时间复杂度计算 \(\mathbf{1}_x\) 的前缀和了。它同样可以线筛,那么现在就做到了 \(\mathcal{O}(n^{2/3})\) 的复杂度。

同样来尝试 \(\varphi\),即使 \(\varphi(ix)\) 并不是关于 \(i\) 的积性函数,但我们仍然去考虑它在质数次幂的取值形成的 ogf,若 \(p\nmid x\) 那么 \(f_p(z)=\frac{1-z}{1-pz}\),否则假设最大的正整数 \(k\) 使得 \(p^k\mid x\),那么有 \(f_p(z)=\frac{(p-1)p^{k-1}}{1-pz}\),若设 \(g(i)=f(i)/\varphi(x)\),那么 \(p\mid x\)\(g_p(z)\) 就变为了 \(\frac{1}{1-pz}\),这里需要证一下 \(g\) 是个积性函数:

\(f(i)\) 是关于 \(i\) 的积性函数,若 \(f(x)\neq 0\) 那么 \(f(ix)/f(x)\) 是关于 \(i\) 的积性函数。直接按定义 \(\frac{f(ix)}{f(x)}\times \frac{f(jx)}{f(x)}=\frac{f(ijx)}{f(x)}\)\(f(ix)f(jx)=f(ijx)f(x)\),此时考察一个质因子 \(p\),假设它在 \(i,j,x\) 中的次幂分别是 \(e_i,e_j,e_x\),首先 \(e_i,e_j\) 至少有一个为 0,假设 \(e_i=0\),那么它对左侧的贡献是乘上 \(f(p^{e_x})f(p^{e_j+e_x})\),对右侧的贡献是 \(f(p^{e_j+e_x})f(p^{e_x})\),所以等式左右相等。

于是同样有 \(h(i)=[\gcd(i,x)]=1]\),那么 \(g*h=id\),可以杜教筛。

这里的重点在于,\(f'(x)=f(ix)/f(x)\) 是积性的,如果想求 \(f(ix)\) 的前缀和,就可以转化为求 \(f'(x)\) 这个积性函数的前缀和问题。如果 \(f(x)=0\) 那么 \(x\) 存在质数次幂 \(p^k\) 满足 \(f(p^k)=0\),于是有 \(p\nmid i\)\(f(ix)=0\),所以可以 \(n\leq \left\lfloor\frac{n}{p}\right\rfloor,x\gets px\)

杜爷是怎么想到这个东西呢?考虑 \(f(ix)\) 实际上对 \(x\) 的质因子的贝尔级数的系数进行了一个位移,不是积性的原因是常数项不为 1,那么除掉常数项就得到了这个构造。我愿称之为杜爷筛。

posted @ 2023-08-24 19:02  do_while_true  阅读(26)  评论(0编辑  收藏  举报