莫比乌斯反演和杜教筛

来简单写一下,别急还在施工。

但是洛谷的排版有点太唐了。

不保证全部正确。

P2257 YY 的 GCD

\(\sum\limits_{p \in P} \sum \limits_{x=1}^n \sum \limits_{y=1}^ m [ \gcd (x,y) = p ] (P是素数集)\)

\[\begin{aligned} \sum\limits_{p \in P} \sum \limits_{x=1}^n \sum \limits_{y=1}^ m [ \gcd (x,y) = p ] \end{aligned} \]

\[\begin{aligned} =\sum\limits_{p \in P} \sum \limits_{x=1}^{\left\lfloor\frac{n}{p}\right\rfloor} \sum \limits_{y=1}^{\left\lfloor\frac{m}{p}\right\rfloor} [ \gcd (x,y) = 1 ] \end{aligned} \]

根据 \(\mu * 1 = \epsilon\) (\(\epsilon\) 是单位函数)

\[\begin{aligned} =\sum\limits_{p \in P} \sum \limits_{x=1}^{\left\lfloor\frac{n}{p}\right\rfloor} \sum \limits_{y=1}^{\left\lfloor\frac{m}{p}\right\rfloor}\sum\limits_{gcd(x,y)|d} \mu(d) \end{aligned} \]

\[\begin{aligned} =\sum\limits_{p \in P} \sum \limits_{x=1}^{\left\lfloor\frac{n}{p}\right\rfloor} \sum \limits_{y=1}^{\left\lfloor\frac{m}{p}\right\rfloor}\sum\limits_{x|d,y|d} \mu(d) \end{aligned} \]

接下来提出来

\[\begin{aligned} =\sum\limits_{p \in P} \sum \limits_{d=1}^{\left\lfloor\frac{\min(n,m)}{p}\right\rfloor} \mu(d) \times \left\lfloor\frac{n}{pd}\right\rfloor \times \left\lfloor\frac{m}{pd}\right\rfloor \end{aligned} \]

\(T=pd\)

\[\begin{aligned} =\sum\limits_{T=1}^{\min(n,m)} \left\lfloor\frac{n}{T}\right\rfloor \times \left\lfloor\frac{m}{T}\right\rfloor \sum\limits_{p\in P,p|T} \mu(\frac{T}{p}) \end{aligned} \]

第一个是数论分块,后面的预处理出来就可以了。

P3327 [SDOI2015] 约数个数和

\(\sum\limits_{i=1}^{n} \sum\limits_{j=1}^m d(ij) (d(x)是 x 的约数个数)\)

先不加证明的给出一个结论 \(d(ij) = \sum\limits_{x|i} \sum\limits_{y|i} [ \gcd (i,j)=1]\)

感性理解很容易,因为这里是莫比乌斯反演所以没有证明。

接下来就是套路了。

\[\begin{aligned} \sum\limits_{i=1}^n\sum\limits_{j=1}^m d(ij) \end{aligned} \]

\[\begin{aligned} =\sum\limits_{i=1}^n\sum\limits_{j=1}^m\sum\limits_{x|i} \sum\limits_{y|i} [ \gcd (i,j)=1] \end{aligned} \]

更换一下枚举的东西。

\[\begin{aligned} =\sum\limits_{x=1}^n\sum\limits_{y=1}^m \left\lfloor\frac{n}{x}\right\rfloor\left\lfloor\frac{m}{y}\right\rfloor[ \gcd (x,y)=1] \end{aligned} \]

使用反演。

\[\begin{aligned} =\sum\limits_{x=1}^n\sum\limits_{y=1}^m \left\lfloor\frac{n}{x}\right\rfloor\left\lfloor\frac{m}{y}\right\rfloor\sum\limits_{d| \gcd (x,y)} \mu(d) \end{aligned} \]

\[\begin{aligned} =\sum\limits_{x=1}^n\sum\limits_{y=1}^m \left\lfloor\frac{n}{x}\right\rfloor\left\lfloor\frac{m}{y}\right\rfloor\sum\limits_{d|x,d|y} \mu(d) \end{aligned} \]

接下来又是枚举 d 了。

\[=\begin{aligned} \sum\limits_{d=1}^{\min(n,m)} \mu(d) \sum\limits_{x=1}^{\left\lfloor\frac{n}{d}\right\rfloor}\sum\limits_{y=1}^{\left\lfloor\frac{m}{d}\right\rfloor}\left\lfloor\frac{n}{xd}\right\rfloor\left\lfloor\frac{m}{yd}\right\rfloor \end{aligned} \]

\[\begin{aligned} =\sum\limits_{d=1}^{\min(n,m)}\mu(d)\sum\limits_{x=1}^{\left\lfloor\frac{n}{d}\right\rfloor}\sum\limits_{y=1}^{\left\lfloor\frac{m}{d}\right\rfloor}\left\lfloor\frac{\left\lfloor\frac{n}{d}\right\rfloor}{x}\right\rfloor\left\lfloor\frac{\left\lfloor\frac{m}{d}\right\rfloor}{y}\right\rfloor \end{aligned} \]

\[\begin{aligned} =\sum\limits_{d=1}^{\min(n,m)} \mu(d)\sum\limits_{x=1}^{\left\lfloor\frac{n}{d}\right\rfloor}\left\lfloor\frac{\left\lfloor\frac{n}{d}\right\rfloor}{x}\right\rfloor \sum\limits_{y=1}^{\left\lfloor\frac{m}{d}\right\rfloor} \left\lfloor\frac{\left\lfloor\frac{m}{d}\right\rfloor}{y}\right\rfloor \end{aligned} \]

我们设 \(f(x) = \sum\limits_{i=1}^x\left\lfloor\frac{x}{i}\right\rfloor\) 所以原式 \(=\sum\limits_{d=1}^{\min(n,m)}\mu(d)f(\left\lfloor\frac{n}{d}\right\rfloor)(\left\lfloor\frac{m}{d}\right\rfloor)\)

已经能过了,但太慢了,我们继续变形。

\(f(x) = \sum\limits_{i=1}^x\left\lfloor\frac{x}{i}\right\rfloor=\sum\limits_{i=1}^{x}d(x)(d(x)是约数个数)\)

那么用线性筛求出 \(d\) , 进而求出 \(\sum d\) 和 f 即可。

然后对原式子使用数论分块。

接下来的这个不是莫比乌斯反演但是还是放这里了。

\[\sum\limits_{k=1}^n \mu^2(k) \]

容斥原理,我们对于一个质数 \(p\) 不合法的显然有 \(\left\lfloor\frac{n}{p^2} \right\rfloor\)

但是多减去了 \(\left\lfloor\frac{n}{{p_1}^2{p_2}^2} \right\rfloor\) 个…

那么对于 \(d\), 是 \(s\) 个不同质数的乘积贡献是 \((-1)^s\left\lfloor\frac{n}{d^2} \right\rfloor\)

然后这个东西很像莫比乌斯函数,直接写成 \(\mu(d)\left\lfloor\frac{n}{d^2} \right\rfloor\)

最后得到的结果是

\[\sum\limits_{k=1}^n \mu^2(k) =\sum\limits_{k=1}^{\sqrt n} \mu(d) \left\lfloor\frac{n}{d^2} \right\rfloor \]

杜教筛

然后来写一点杜教筛。

我们需要求解

\[\phi(n)=\sum\limits_{i=1}^n \varphi(i) \]

使用狄利克雷卷积我们有 \(Id =1 * \varphi\)

我们有 \(\begin{aligned} \frac{n \times (n+1)}{2} = \sum\limits_{k=1}^n i \end{aligned}\)

\(\begin{aligned} =\sum\limits_{d=1}^n \sum\limits_{ {d|k} \& {1} \le k \le n} \varphi ( \frac{k}{d} ) \end{aligned}\)

\(\begin{aligned} =\sum\limits_{d=1}^n \sum\limits_{k=1}^{\left\lfloor\frac{n}{d} \right\rfloor} \varphi(k)\end{aligned}\)

\(\begin{aligned} =\sum\limits_{d=1}^n \phi(\left\lfloor\frac{n}{d} \right\rfloor)\end{aligned}\)

所以 \(\sum\limits_{i=1}^n \varphi(i)=\frac{n \times (n+1)}{2}-\sum\limits_{d=2}^n \phi(\left\lfloor\frac{n}{d} \right\rfloor)\)

直接这样算是 \(O(n^{\frac{3}{4}})\) 的,预处理出来前面的 \(n^{\frac{2}{3}}\) 个是 \(O(n^{\frac{2}{3}})\) 的。

再来看

\[M(n)=\sum\limits_{i=1}^n \mu(i) \]

使用狄利克雷卷积我们有 \(\mu \times 1 = \epsilon\)

我们有

\(\begin{aligned} 1 = \sum\limits_{k=1}^n \epsilon(i) \end{aligned}\)

\(\begin{aligned} =\sum\limits_{d=1}^n \sum\limits_{ {d|k} \& {1} \le k \le n} \mu ( \frac{k}{d} ) \end{aligned}\)

\(\begin{aligned} =\sum\limits_{d=1}^n \sum\limits_{k=1}^{\left\lfloor\frac{n}{d} \right\rfloor} \mu(k)\end{aligned}\)

\(\begin{aligned} =\sum\limits_{d=1}^n M(\left\lfloor\frac{n}{d} \right\rfloor)\end{aligned}\)

所以 \(\sum\limits_{i=1}^n \mu(i)=1-\sum\limits_{d=2}^n M(\left\lfloor\frac{n}{d} \right\rfloor)\)

按上面处理就可以了。

P1587 [NOI2016] 循环之美

写杜教筛是因为这题要用。

满足条件的实际上是 \(y \perp k\)

答案就是 \(\sum\limits_{x=1}^n\sum\limits_{y=1}^m [x \perp y][y \perp k]\)

这个 \(k\) 比较可怕,我们先不动它

\[\sum\limits_{x=1}^n\sum\limits_{y=1}^m [y \perp k] \sum\limits_{d|x,d | y} \mu(d) \]

\[\sum\limits_{d=1}^{\min(n,m)} \mu(d) [d \perp k]\left\lfloor \frac{n}{d} \right\rfloor \sum\limits_{y=1}^{\left\lfloor \frac{m}{d} \right\rfloor} [y \perp k] \]

我们设 \(f(n,k) = \sum\limits_{y=1}^{n} [y \perp k]\)\(g(n,k) = \sum\limits_{y=1}^{n} \mu(y) [y \perp k]\)

这个式子里面有 \(\left\lfloor \frac{n}{d} \right\rfloor\) 那我们想方设法的去数论分块,并且注意到 \(f(n,1) = n\)\(g(n,1)\) 可以杜教筛,其次我们发现 \(k\) 的平方因子对于互质来说没有用,这也算一个 Trick,那么我们来发现一下她们的联系。

我们考虑 \(k\) 的某个素因子 \(p\),并考虑 \(f(n,k)\)\(f(n,\frac{k}{p})\) 有什么变化。

\(f(n,k)= \sum\limits_{i=1}^n[i \perp k]\)

$ = \sum\limits_{i=1}^n[i \perp \frac{k}{p}] -\sum\limits_{i=1}^n[i \perp \frac{k}{p}][i \perp p]$

\(= f(n,\frac{k}{p})-\sum\limits_{i=1}^{\left\lfloor\frac{n}{p}\right\rfloor }[i p \perp \frac{k}{p}]\)

\(= f(n,\frac{k}{p})-\sum\limits_{i=1}^{\left\lfloor\frac{n}{p}\right\rfloor }[i \perp \frac{k}{p}]\)

\(= f(n,\frac{k}{p})-f(\left\lfloor\frac{n}{p}\right\rfloor ,\frac{k}{p})\)

好似非常有前途,我们来看 \(g\),方法大同小异。

\(g(n,k) = \sum\limits_{x=1}^{n} \mu(i) [i \perp k]\)

\(g(n,k)= \sum\limits_{x=1}^{n} \mu(i) [i \perp \frac{k}{p}] - \sum\limits_{x=1}^{n} \mu(i) [i \perp \frac{k}{p}][i \perp p]\)

\(g(n,k) = g(n,\frac{k}{p}) - \sum\limits_{x=1}^{n} \mu(i) [i \perp \frac{k}{p}][i \perp p]\)

\(g(n,k) = g(n,\frac{k}{p}) - \sum\limits_{x=1}^{\left\lfloor\frac{n}{p}\right\rfloor } \mu(ip) [ip \perp \frac{k}{p}]\)

给一个结论 \(\mu(ab)= \mu(a) \mu(b)[a \perp b]。\)

\(g(n,k) = g(n,\frac{k}{p}) - \sum\limits_{x=1}^{\left\lfloor\frac{n}{p}\right\rfloor } \mu(i)\mu(p) [i \perp p] [ip \perp \frac{k}{p}]\)

\(g(n,k) = g(n,\frac{k}{p}) + \sum\limits_{x=1}^{\left\lfloor\frac{n}{p}\right\rfloor } \mu(i) [ip \perp k]\)

\(g(n,k) = g(n,\frac{k}{p}) + \sum\limits_{x=1}^{\left\lfloor\frac{n}{p}\right\rfloor } \mu(i) [i \perp k]\)

\(g(n,k) = g(n,\frac{k}{p}) + g(\left\lfloor\frac{n}{p}\right\rfloor,k)\)

关键点的理论就不写了,这个复杂度显然是正确的。

以后对于这样的式子就写着走就行了,后面还有运用

P1829 [国家集训队] Crash 的数字表格 / JZPTAB

\[\sum\limits_{i=1}^n\sum\limits_{j=1}^m \operatorname{lcm}(i,j) \]

众所周知 \(\operatorname{lcm}(i,j) \times \gcd (i,j) = i \times j\)

接下来开始推式子。

\[\sum\limits_{i=1}^n\sum\limits_{j=1}^m \operatorname{lcm}(i,j) \]

\[=\sum\limits_{i=1}^n\sum\limits_{j=1}^m \frac{i \times j}{gcd(i,j)} \]

\[=\sum\limits_{d=1}^{\min(n,m)}\sum\limits_{i=1}^n\sum\limits_{j=1}^m \frac{i j}{d} \times [ \gcd (i,j)=d] \]

\[=\sum\limits_{d=1}^{\min(n,m)}\sum\limits_{i=1}^{\left\lfloor \frac{n}{d} \right\rfloor}\sum\limits_{j=1}^{\left\lfloor \frac{m}{d} \right\rfloor} i j d \times [ \gcd (i,j)=1] \]

\[=\sum\limits_{d=1}^{\min(n,m)}\sum\limits_{i=1}^{\left\lfloor \frac{n}{d} \right\rfloor}\sum\limits_{j=1}^{\left\lfloor \frac{m}{d} \right\rfloor} i j d \sum\limits_{k|i,k|j} \mu(k) \]

\[=\sum\limits_{d=1}^{\min(n,m)}\sum\limits_{i=1}^{\left\lfloor \frac{n}{d} \right\rfloor}\sum\limits_{j=1}^{\left\lfloor \frac{m}{d} \right\rfloor} i j d \sum\limits_{k|i,k|j} \mu(k) \]

\[=\sum\limits_{d=1}^{\min(n,m)} d \sum\limits_{k|i,k|j} \mu(k) \sum\limits_{i=1}^{\left\lfloor \frac{n}{d} \right\rfloor}\sum\limits_{j=1}^{\left\lfloor \frac{m}{d} \right\rfloor} i j \]

\[=\sum\limits_{d=1}^{\min(n,m)} d \sum\limits_{k=1}^{\min(\left\lfloor \frac{n}{d} \right\rfloor,\left\lfloor \frac{m}{d} \right\rfloor)} \mu(k) \times k^2 \sum\limits_{i=1}^{\left\lfloor \frac{n}{dk} \right\rfloor}\sum\limits_{j=1}^{\left\lfloor \frac{m}{dk} \right\rfloor} i j \]

方便起见设 \(S(i)=\sum\limits_{i=1}^ni,H(i)=\mu(i) \times i^2,T=dk\)

\[=\sum\limits_{d=1}^{\min(n,m)} d \sum\limits_{k=1}^{\min(\left\lfloor \frac{n}{d} \right\rfloor,\left\lfloor \frac{m}{d} \right\rfloor)} H(k) \sum\limits_{i=1}^{\left\lfloor \frac{n}{T} \right\rfloor}\sum\limits_{j=1}^{\left\lfloor \frac{m}{T} \right\rfloor} i j \]

\[=\sum\limits_{d=1}^{\min(n,m)} d \sum\limits_{k=1}^{\min(\left\lfloor \frac{n}{d} \right\rfloor,\left\lfloor \frac{m}{d} \right\rfloor)} H(k) S(\left\lfloor \frac{n}{T} \right\rfloor) S(\left\lfloor \frac{m}{T} \right\rfloor) \]

wc,这个好像就能过了 /fn,我以为这个过不了。

实际上一层数论分块是对的,我们有 \(O(\sum\limits_{i=1}^n \sqrt {\left\lfloor \frac{n}{i}\right\rfloor} )\) 大概是 \(O(n^{\frac{3}{4}})\) (通过积分近似证明),这个是能过的。

但这个东西非常的不牛,我们可以进行优化

我们回到这个式子,我们仍然使用上面的记号

\[=\sum\limits_{d=1}^{\min(n,m)} d \sum\limits_{k=1}^{\min(\left\lfloor \frac{n}{d} \right\rfloor,\left\lfloor \frac{m}{d} \right\rfloor)} \mu(k) \times k^2 \sum\limits_{i=1}^{\left\lfloor \frac{n}{dk} \right\rfloor}\sum\limits_{j=1}^{\left\lfloor \frac{m}{dk} \right\rfloor} i j \]

这次我们直接枚举 \(T\)

\[=\sum\limits_{T=1}^{\min(n,m)} \sum\limits_{k|T} H(k) \times \frac{T}{k} \sum\limits_{i=1}^{\left\lfloor \frac{n}{T} \right\rfloor}\sum\limits_{j=1}^{\left\lfloor \frac{m}{T} \right\rfloor} i j \]

\(\sum\limits_{k|T} H(k) \times \frac{T}{k}\) 这个东西是卷积的形式,那么他们构成的数论函数我们叫他 \(G\)

实际上是 \(G = H * Id\)

那么答案是

\[=\sum\limits_{T=1}^{\min(n,m)} G(T) S(\left\lfloor \frac{n}{T} \right\rfloor) S(\left\lfloor \frac{m}{T} \right\rfloor) \]

你已经可以使用狄利克雷卷积去计算 \(G(T)\) 了,这是一个 \(O(n \log n)\) 的调和级数。

我们尝试使用线性筛去求解 \(G\)

我们对于 \(G(p^a)\) 将它的卷积式子拆开
实际上只有两项 \(G(p^a)=H(1) \times p^a + H(p) \times p^{a-1} = p^a - p^{a+1}\),这个是可以线性筛的。

询问的复杂度是 \(O(\sqrt{n})\) 的,可以做到多组询问。

P4619 [SDOI2018] 旧试题

你先别急。

P3312 [SDOI2014] 数表

没有限制条件的话就很简单了。

实际上是求 $\sum\limits_{i=1}^n \sum\limits_{j=1}^m [ {\sigma(gcd(i,j))\le a} ] \sigma (gcd(i,j)) $

还是枚举 gcd 的取值

\[=\sum\limits_{d=1}^{\min(n,m)}\sum\limits_{i=1}^n\sum\limits_{j=1}^m[\sigma(d)\le a][gcd(i,j)==d] \sigma(d) \]

\[=\sum\limits_{d=1}^{\min(n,m)}\sigma(d)[\sigma(d)\le a]\sum\limits_{i=1}^{\left\lfloor \frac{n}{d} \right \rfloor}\sum\limits_{j=1}^{\left\lfloor \frac{m}{d} \right \rfloor}[gcd(i,j)==1] \]

后面那一堆可以反演

\[\sum\limits_{i=1}^{\left\lfloor \frac{n}{d} \right \rfloor}\sum\limits_{j=1}^{\left\lfloor \frac{m}{d} \right \rfloor}[gcd(i,j)==1] \]

\[\sum\limits_{i=1}^{\left\lfloor \frac{n}{d} \right \rfloor}\sum\limits_{j=1}^{\left\lfloor \frac{m}{d} \right \rfloor} \sum\limits_{k|i,k|j} \mu(k) \]

\[\sum\limits_{k=1}^{\min(\left\lfloor \frac{n}{d} \right \rfloor,\left\lfloor \frac{m}{d} \right \rfloor)} \mu(k) \times \left\lfloor \frac{n}{kd} \right \rfloor \times \left\lfloor \frac{m}{kd} \right \rfloor \]

我们带回去,设 \(f(n)=\sigma(n)[\sigma(n)\le a]\)

\[=\sum\limits_{d=1}^{\min(n,m)}f(d) \sum\limits_{k=1}^{\min(\left\lfloor \frac{n}{d} \right \rfloor,\left\lfloor \frac{m}{d} \right \rfloor)} \mu(k) \times \left\lfloor \frac{n}{kd} \right \rfloor \times \left\lfloor \frac{m}{kd} \right \rfloor \]

又是套路,枚举 \(T=kd\)

\[\sum\limits_{T=1}^{\min(n,m)} \sum\limits_{k|d} \mu(k) f(\frac{T}{k} ) \times \left\lfloor \frac{n}{T} \right \rfloor \times \left\lfloor \frac{m}{T} \right \rfloor \]

\[\sum\limits_{T=1}^{\min(n,m)}\times \left\lfloor \frac{n}{T} \right \rfloor \times \left\lfloor \frac{m}{T} \right \rfloor \sum\limits_{k|d} \mu(k) f(\frac{T}{k} ) \]

看上去是卷积的形式,但不太找的到答案/ll。

但是前面的东西可以直接数论分块求,那我们就不管前面只看后面了,我们可以离线,把所有询问按 \(a\) 排序,还要排 \(\sigma()\),用 BIT 维护答案,询问使用数论分块。

posted @ 2025-01-19 15:12  q1uple  阅读(4)  评论(0编辑  收藏  举报
1