莫比乌斯函数&欧拉函数&筛法 综合运用

前置知识

顺序有先后,但是不是完全的次序,建议确认全部都会再食用本篇。

线性筛

详见线性筛

整除分块

详见整除分块

狄利克雷卷积

详见数论函数&狄利克雷卷积

欧拉函数

详见欧拉函数

莫比乌斯函数

详见莫比乌斯函数&莫比乌斯反演

杜教筛

详见杜教筛

基础应用

最基础的一些题目。

基础知识

\(求\sum\limits_{i=1}^mn\%i\)

问题

\[\large \sum\limits_{i=1}^mn\%i \]

结论

\[\large nm-\sum\limits_{i=1}^mi\times \lfloor\frac ni\rfloor \]

分析

求:

\[\large \sum\limits_{i=1}^mn\%i=\sum\limits_{i=1}^m(n-\lfloor\frac ni\rfloor\times i)=nm-\sum\limits_{i=1}^mi\times \lfloor\frac ni\rfloor \]

然后直接整除分块即可。

\(求\sum\limits_{i=1}^{n}\sum\limits_{j=1 \land i \not = j}^{m}(n\ mod\ i)(m\ mod\ j)\)

结论

\[\large=\sum_{i=1}^{n}\sum_{j=1}^{m}(n-{\left \lfloor \frac{n}{i} \right \rfloor}i)(m-{\left \lfloor \frac{m}{j} \right \rfloor}j)-\sum_{i=1}^{min(n,m)}(nm+{\left \lfloor \frac{n}{i} \right \rfloor}{\left \lfloor \frac{m}{i} \right \rfloor}i^2-(m{\left \lfloor \frac{n}{i} \right \rfloor}+n{\left \lfloor \frac{m}{i} \right \rfloor})i) \]

于是直接数论分块即可。

分析

\[\large \sum\limits_{i=1}^{n}\sum\limits_{j=1 \land i \not = j}^{m}(n\ mod\ i)(m\ mod\ j) \]

\[\large =\sum_{i=1}^{n}\sum_{j=1}^{m}(n-{\left \lfloor \frac{n}{i} \right \rfloor}i)(m-{\left \lfloor \frac{m}{j} \right \rfloor}j)-\sum_{i=1}^{min(n,m)}(n-{\left \lfloor \frac{n}{i} \right \rfloor}i)(m-{\left \lfloor \frac{m}{i} \right \rfloor}i) \]

\[\large=\sum_{i=1}^{n}\sum_{j=1}^{m}(n-{\left \lfloor \frac{n}{i} \right \rfloor}i)(m-{\left \lfloor \frac{m}{j} \right \rfloor}j)-\sum_{i=1}^{min(n,m)}(nm+{\left \lfloor \frac{n}{i} \right \rfloor}{\left \lfloor \frac{m}{i} \right \rfloor}i^2-(m{\left \lfloor \frac{n}{i} \right \rfloor}+n{\left \lfloor \frac{m}{i} \right \rfloor})i) \]

然后数论分块即可。

\(求\sum\limits_{i=1}^n\sum\limits_{j=1}^m(i+j)^k\)

\(\large S(n,m)=\sum\limits_{i=1}^n\sum\limits_{j=1}^m(i+j)^k\)

如果我们考虑枚举 \((i+j)\) 的和,设 \(\large F(n)=\sum\limits_{i=1}^ni^k\)

\[\large S(n,m)=\sum\limits_{i=m+1}^{n+m}\sum\limits_{j=1}^ij^k-\sum\limits_{i=1}^{n}\sum\limits_{j=1}^i=\sum\limits_{i=m+1}^{n+m}F(i)-\sum\limits_{i=1}^{n}F(i)=\sum_{i=1}^{n+m}F(i)-\sum\limits_{i=1}^{n}F(i)-\sum\limits_{i=1}^{m}F(i) \]

那么设 \(\large G(n)=\sum\limits_{i=1}^nF(i)\) ,有 \(\large S(n,m)=G(n+m)-G(n)-G(m)\)

于是我们直接线性筛每一个数的 \(k\) 次幂,然后做二阶前缀和即可得到 \(G\)

莫比乌斯函数&莫比乌斯反演

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

问题

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

结论

\[\large g(d)=\sum\limits_{t=1}^{\min(n,m)} \mu(t) \lfloor\dfrac n{td}\rfloor\lfloor \dfrac m{td}\rfloor \]

分析

也就是一般有这样的套路,设函数 \(g(d)\) 为:

\[\large g(d)=\sum\limits_{i=1}^n\sum\limits_{j=1}^m[\gcd(i,j)=d] \]

这时我们可以观察我们的函数 \(f\)

\[\large f(d)=\sum\limits_{d\mid n}g(n)=\sum\limits_{d\mid n}\sum\limits_{i=1}^N\sum\limits_{j=1}^M[\gcd(i,j)=d] \]

发现这时的 \(f\) 函数性质非常好,就相当于取两个数使得他们都是 \(d\) 的倍数,可以直接写出:

\[\large f(d)=\lfloor\dfrac Nd\rfloor\lfloor \dfrac Md\rfloor \]

然后我们尝试通过莫比乌斯反演来求出 \(g\) 就是利用 \(f\)

\[\large g(n)=\sum\limits_{n|d} \mu(\frac{d}{n}) f(d) \]

那么就是:

\[\large g(n)=\sum\limits_{n|d} \mu(\frac{d}{n}) \lfloor\dfrac Nd\rfloor\lfloor \dfrac Md\rfloor \]

然后我们换成直接枚举这个倍数 \(\large t=\frac dn\)

\[\large g(n)=\sum\limits_{t=1}^{{\min(N,M)}}\mu(t) \lfloor\dfrac N{tn}\rfloor\lfloor \dfrac M{tn}\rfloor \]

那么对于这个柿子可以应用整除分块来处理后半部分,然后预处理一下 \(\mu\) 的前缀和即可在 \(\sqrt{N}\) 的复杂度做到 \(O(n)\) 预处理的单次询问

注意这里的整除分块:

其实我们不是按照 \(tn\) 来分块(这样我就不会处理 \(\mu\) 里面的东西了),而是 \(t\) 来分块。

要把柿子转化成这样:

\[\large g(n)=\sum\limits_{t=1}^{\min(N,M)} \mu(t) \lfloor\dfrac{\lfloor\frac N{t}\rfloor}{n}\rfloor\lfloor\dfrac{\lfloor\frac M{t}\rfloor}{n}\rfloor \]

然后这个时候以 \(t\) 来分块看上去就很没有问题了,因为变量只有 \(t\) ,和 \(n\) 没有关系,我们只关注分子的变化即可。

接下来可以注意这样的分块,其实就等价于 \(N,M\) 都来分块,分了很多个隔板,然后块的个数也就是 \(2\sqrt{N}\) 级别了。

也就是每次取 \(r\) 的时候取两者算出来较小的右端点。

\(求\sum\limits_{d\ is\ prime}\sum\limits_{i=1}^n\sum\limits_{j=1}^m[(i,j)=d]\)

问题

也就是求:

\[\large \sum\limits_{d\ is\ prime}\sum\limits_{i=1}^n\sum\limits_{j=1}^m[\gcd(i,j)=d] \]

结论

\[\large \sum\limits_{d=1}^{\min(n,m)} \lfloor\dfrac nd\rfloor\lfloor \dfrac md\rfloor\sum\limits_{k\mid d,k\ is\ prime}\mu(\frac{d}{k}) \]

分析

根据结论,那么直接把后半写成:

\[\large \sum\limits_{k\ is\ prime}\sum\limits_{k|d} \mu(\frac{d}{k}) \lfloor\dfrac nd\rfloor\lfloor \dfrac md\rfloor \]

然后转为枚举 \(d\)

\[\large \sum\limits_{d=1}^{\min(n,m)} \lfloor\dfrac nd\rfloor\lfloor \dfrac md\rfloor\sum\limits_{k\mid d,k\ is\ prime}\mu(\frac{d}{k}) \]

那么最后那个柿子可以通过一点小办法处理出来,然后前面就是整除分块。

后面那个可以这样做:考虑每一个质数 \(k\) ,对于 \(k\) 的倍数 \(T\) ,将它的值加上 $ \mu(\frac{T}{k})$

\(求\sum\limits_{i=1}^n\sum\limits_{j=1}^m(i,j)\)

问题

求:

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

结论

\[\large \sum\limits_{k=1}^{\min(i,j)}k\sum\limits_{t=1}^{\min(n,m)} \mu(t) \lfloor\dfrac n{tk}\rfloor\lfloor \dfrac m{tk}\rfloor \]

分析

\[\large \begin{split} \sum\limits_{i=1}^n\sum\limits_{j=1}^m(i,j) &=\sum\limits_{k=1}^{\min(n,m)}k\sum\limits_{i=1}^n\sum\limits_{j=1}^m[\gcd(i,j)=k]\\ &=\sum\limits_{k=1}^{\min(n,m)}k\sum\limits_{t=1}^{\min(n,m)} \mu(t) \lfloor\dfrac n{tk}\rfloor\lfloor \dfrac m{tk}\rfloor \end{split} \]

然后把后半部分整除分块,使用 \(\mu\) 的前缀和处理即可。

\(求\sum\limits_{i=1}^n\sum\limits_{j=1}^m(i,j)^k\)

稍微推一下吧:

\[\large \begin{split} &\ \ \ \ \sum_{i=1}^n\sum_{j=1}^m\gcd(i,j)^k\\ &=\sum_{i=1}^n\sum_{j=1}^m\sum_{d\vert \gcd(i,j)} d^k[\gcd(\frac id,\frac jd)=1]\\ &=\sum_{d=1}^{\min(n,m)}d^k\sum_{i=1}^{\lfloor\frac nd\rfloor}\sum_{j=1}^{\lfloor\frac md\rfloor}[\gcd(i,j)=1]\\ &=\sum_{d=1}^{\min(n,m)}d^k\sum_{k=1}^{\lfloor\frac{\min(n,m)}{d} \rfloor}\mu(k)\lfloor\frac n{kd}\rfloor\lfloor\frac m{kd}\rfloor \end{split} \]

后面那个东西其实就是一个数论分块,前面的就是 \(id^k\) ,根据狄利克雷卷积的性质,显然可以也是个积性函数,再加上求 \(d\) 为质数的复杂度在 \(\ln\) 以内,所以可以线性筛。

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

问题

\[\large \begin{split} \sum_{i=1}^{n}\sum_{j=1}^{m}ij[(i,j)=1]\\ \end{split} \]

结论

\(\large G(x)=\dfrac{x(x+1)}{2}\)

\[\large \sum_{d=1}^{n}\mu(d)\cdot d^2\cdot G(\lfloor\frac nd\rfloor)G(\lfloor\frac md\rfloor) \]

分析

这里没有使用莫比乌斯反演而是直接用 \(\large \mu*I=\varepsilon\) 的性质:

\[\large \begin{split} S(n,m) &=\sum_{i=1}^{n}\sum_{j=1}^{m}ij[\gcd(i,j)=1]\\ &=\sum_{i=1}^{n}\sum_{j=1}^{m}ij\sum_{d\vert \gcd(i,j)}\mu(d)\\ &=\sum_{d=1}^{n}\mu(d)\cdot d^2\sum_{i=1}^{\lfloor\frac nd\rfloor}\sum_{j=1}^{\lfloor\frac md\rfloor}ij\\ &=\sum_{d=1}^{n}\mu(d)\cdot d^2\sum_{i=1}^{\lfloor\frac nd\rfloor}i\sum_{j=1}^{\lfloor\frac md\rfloor}j\\ &=\sum_{d=1}^{n}\mu(d)\cdot d^2\cdot G(\lfloor\frac nd\rfloor)G(\lfloor\frac md\rfloor) \end{split} \]

\(求\sum\limits_{i=1}^n\sum\limits_{j=1}^mlcm(i,j)\)

问题

\[\large \sum_{i=1}^n\sum_{j=1}^mlcm(i,j) \]

结论

结论一:

\[\large \sum_{d=1}^nd\cdot \sum_{k=1}^{\lfloor\frac nd\rfloor}\mu(k)\cdot k^2\cdot\dfrac {{\lfloor\frac n{dk}\rfloor}({\lfloor\frac n{dk}\rfloor}+1)}{2}\dfrac {{\lfloor\frac m{dk}\rfloor}({\lfloor\frac m{dk}\rfloor}+1)}{2} \]

结论二:(进一步优化)

\[\large \sum_{k=1}^n\lfloor\frac nk\rfloor^2\sum_{d\mid k}\varphi(d)\mu(\frac kd) \]

分析

先将式子化简:

\[\large \begin{split} \sum_{i=1}^n\sum_{j=1}^mlcm(i,j) &=\sum_{i=1}^n\sum_{j=1}^{m}\sum_{d\vert i,d\vert j,\gcd(\frac id,\frac jd)=1}\frac {ij}{d}\\ &=\sum_{d=1}^nd\sum_{i=1}^{\lfloor\frac nd\rfloor}\sum_{j=1}^{\lfloor\frac md\rfloor}ij[\gcd(i,j)=1]\\ \end{split} \]

这时我们单独计算后半部分,这里没有使用莫比乌斯反演而是直接用 \(\large \mu*I=\varepsilon\) 的性质:(这部分其实就是上一个问题)

\[\large \begin{split} S(n,m) &=\sum_{i=1}^{n}\sum_{j=1}^{m}ij[\gcd(i,j)=1]\\ &=\sum_{i=1}^{n}\sum_{j=1}^{m}ij\sum_{d\vert \gcd(i,j)}\mu(d)\\ &=\sum_{d=1}^{n}\mu(d)\cdot d^2\sum_{i=1}^{\lfloor\frac nd\rfloor}\sum_{j=1}^{\lfloor\frac md\rfloor}ij\\ &=\sum_{d=1}^{n}\mu(d)\cdot d^2\sum_{i=1}^{\lfloor\frac nd\rfloor}i\sum_{j=1}^{\lfloor\frac md\rfloor}j\\ &=\sum_{d=1}^{n}\mu(d)\cdot d^2\cdot G(\lfloor\frac nd\rfloor)G(\lfloor\frac md\rfloor) \end{split} \]

其中,\(\large G(x)=\frac {x(x+1)}{2}\) ,表示等差数列求和。

很容易发现,对于 \(\large S\) 函数,可以通过整除分块来计算,按照 \(\large\lfloor\frac nd\rfloor\) 以及 \(\large \lfloor\frac md\rfloor\) 来分块即可,前面的部分就是预处理一下前缀和即可。

现在代回原式子:

\[\large \sum_{d=1}^nd\cdot S({\lfloor\frac nd\rfloor},{\lfloor\frac md\rfloor}) \]

然后我们可以发现,原式还需要一次除法分块,而第二次除法分块将借助第一次的作为上界进行分块,这就是二次除法分块,这样做的复杂度可以证明是 \(\large O(n^{\frac 34})\) 的。

接下来考虑进一步优化:

\[\large \sum_{d=1}^nd\cdot \sum_{k=1}^{\lfloor\frac nd\rfloor}\mu(k)\cdot k^2\cdot G(\lfloor\frac n{dk}\rfloor)G(\lfloor\frac m{dk}\rfloor) \]

考虑枚举 \(\large dk\)

\[\large \sum_{d=1}^nd\cdot \sum_{d\vert x}\mu(\frac xd)\cdot (\frac xd)^2\cdot G(\lfloor\frac n{x}\rfloor)G(\lfloor\frac m{x}\rfloor) \]

交换求和符号(先枚举一个数再枚举其倍数等价于先枚举其倍数再枚举倍数的因数):

\[\large \sum_{x=1}^n G(\lfloor\frac n{x}\rfloor)G(\lfloor\frac m{x}\rfloor)\sum_{d\vert x}\mu(\frac xd)\cdot \frac {x^2}d \]

考虑先枚举 \(\large \frac xd\)

\[\large \sum_{x=1}^n G(\lfloor\frac n{x}\rfloor)G(\lfloor\frac m{x}\rfloor)\sum_{k\vert x}kx\cdot \mu(k) \]

直接把 \(\large x\) 提出来:

\[\large \sum_{x=1}^n G(\lfloor\frac n{x}\rfloor)G(\lfloor\frac m{x}\rfloor)x\sum_{k\vert x}k\cdot \mu(k) \]

于是后面那部分就是 \(\large F(x)=\sum\limits_{d\vert x}id(x)\mu(x)\) ,因为 \(id\)\(\mu\) 都是积性函数,所以 \(F\) 也是积性函数。

所以可以考虑线性筛出来,前面部分就是一个整除分块,直接做即可。

时间复杂度是 \(\large O(V+m\sqrt{V})\) ,其中 \(V\) 是值域,\(m\) 是询问次数,如果使用杜教筛可以优化到 \(\large O(V^{\frac 23}+m\sqrt{V})\)

\(求\sum\limits_{i=1}^n\sum\limits_{j=1}^n\varphi(\gcd(i,j))\)

问题

\[\large \sum_{i=1}^n\sum_{j=1}^n\varphi(\gcd(i,j)) \]

\(\large T\le 5000,n\le 10^7\)

结论

\[\large \sum_{i=1}^n\lfloor \dfrac ni\rfloor^2\sum_{d\mid i}\varphi(d)\mu(\frac id) \]

分析

\[\large \begin{split} \sum_{i=1}^n\sum_{j=1}^n\varphi(\gcd(i,j)) &=\sum_{d=1}^n\sum_{i=1}^{\lfloor\frac nd\rfloor}\sum_{j=1}^{\lfloor\frac nd\rfloor}\varphi(d)[\gcd(i,j)=1]\\ &=\sum_{d=1}^n\varphi(d)\sum_{i=1}^{\lfloor\frac nd\rfloor}\sum_{j=1}^{\lfloor\frac nd\rfloor}[\gcd(i,j)=1]\\ &=\sum_{d=1}^n\varphi(d)\sum_{t=1}^{\lfloor\frac nd\rfloor}\mu(t)\lfloor\frac n{dt}\rfloor^2\\ &=\sum_{k=1}^n\lfloor\frac nk\rfloor^2\sum_{d\mid k}\varphi(d)\mu(\frac kd) \end{split} \]

一点说明:

第三步是莫比乌斯反演的结论,第四步是直接枚举 \(dt\) ,把那个可以整除分块的东西提出来。

容易发现后面的柿子是个卷积,两个都是积性函数,根据狄利克雷卷积的性质,整体也是积性函数,然后分析一下不难得出 \(f(1),f(p),f(p^k)\) 的值,于是可以线性筛,再做一下前缀和,前面的直接整除分块即可。

扩展:貌似还有其他做法,比如欧拉函数。

\(求\sum\limits_{i=1}^n\sum\limits_{j=1}^md(ij)\)

问题

\[\large \sum_{i=1}^n\sum_{j=1}^md(ij) \]

\(\large n,m,t\le 5\times 10^4\)

结论

上面柿子的结论:

\[\large\sum_{d=1}^{\min(n,m)}\mu(d)\sum_{i=1}^{\lfloor\frac nd\rfloor}\lfloor\frac n{di}\rfloor\sum_{j=1}^{\lfloor\frac md\rfloor}\lfloor\frac m{dj}\rfloor \]

一个证明需要的重要结论:

\[\large d(ij)=\sum_{x\mid i}\sum_{y\mid j}[\gcd(x,y)=1] \]

略证:

对于 \(ij\) 的质因子 \(p\) ,假设次数为 \(c\) ,设 \(i\) 中有 \(a\) 次,\(j\) 中有 \(b\)

接下来对于每一个 \(p\) 我们钦定如下选择:

如果 \(c\le a\) ,那么我们就在 \(i\) 中直接选出 \(p^c\)\(j\) 中一个不选,这时两者相对 \(p\) 这个质因子来说是互质的(一个有一个没有嘛)

如果 \(c>a\) ,那么我们默认\(i\) 中选满 \(a\) 个,然后 \(j\) 中选择 \(c-a\) 个,这时,我们 \(i\) 选满,其实可以把这样的条件看作 \(i\) 一个没选\(j\) 选了 \(c-a\) 个,这样来说选出来的两个数还是互质的。

也就是说,对于每一个质因子的所有可能选择情况,都唯一对应了 \(i,j\) 中这个质因子的选择情况,这时如果我们把选满看作没选,那么相当于每一个都是要么 \(i\) 要么 \(j\) ,此时可以完全看作 \(i,j\) 互质,因为这样无论怎么选都有唯一对应关系。

分析

\[\large \sum_{i=1}^n\sum_{j=1}^md(ij)=\sum_{i=1}^n\sum_{j=1}^m\sum_{x\mid i}\sum_{y\mid j}[\gcd(x,y)=1]\\ \]

然后可以转换成枚举 \(x,y\)

\[\large \sum_{i=1}^n\sum_{j=1}^md(ij)=\sum_{i=1}^n\sum_{j=1}^m\lfloor\frac ni\rfloor\lfloor\frac mj\rfloor[\gcd(i,j)=1]\\ \]

接下来设:

\[\large g(d)=\sum_{i=1}^n\sum_{j=1}^m\lfloor\frac ni\rfloor\lfloor\frac mj\rfloor[\gcd(i,j)=d] \]

以及:

\[\large f(d)=\sum_{d\vert k}g(k)=\sum_{d\vert k}\sum_{i=1}^n\sum_{j=1}^m\lfloor\frac ni\rfloor\lfloor\frac mj\rfloor[\gcd(i,j)=k] \]

那么考虑其对于 \(d\) 的意义:

\[\large f(d)=\sum_{i=1}^n\sum_{j=1}^m\lfloor\frac ni\rfloor\lfloor\frac mj\rfloor[d\vert \gcd(i,j)] \]

然后我们只枚举两者对于 \(d\) 的倍数:(也就是只枚举 \(i,j\) 都是 \(d\) 的倍数的数)

\[\large f(d)=\sum_{i=1}^{\lfloor\frac{n}{d}\rfloor}\sum_{j=1}^{\lfloor \frac{m}{d} \rfloor}\lfloor\frac n{di}\rfloor\lfloor\frac m{dj}\rfloor \]

然后我们通过莫比乌斯反演写出 \(g\)

\[\large g(k)=\sum_{k\vert d}\mu(\frac dk)f(d)=\sum_{k\vert d}\mu(\frac dk)\sum_{i=1}^{\lfloor\frac{n}{d}\rfloor}\sum_{j=1}^{\lfloor \frac{m}{d} \rfloor}\lfloor\frac n{di}\rfloor\lfloor\frac m{dj}\rfloor \]

然后因为这里我们只需要:

\[\large g(1)=\sum_{d=1}^{\min(n,m)}\mu(d)\sum_{i=1}^{\lfloor\frac nd\rfloor}\sum_{j=1}^{\lfloor\frac md\rfloor}\lfloor\frac n{di}\rfloor\lfloor\frac m{dj}\rfloor=\sum_{d=1}^{\min(n,m)}\mu(d)\sum_{i=1}^{\lfloor\frac nd\rfloor}\lfloor\frac n{di}\rfloor\sum_{j=1}^{\lfloor\frac md\rfloor}\lfloor\frac m{dj}\rfloor \]

注意后面两个柿子,有一个巧妙的处理,也就是预处理 \(\large \sum\limits_{i=1}^x\lfloor\frac xi\rfloor\) ,然后把 \(\large \lfloor\frac nd\rfloor\) 看作 \(x\) 即可。

然后显然后面两个是按照 \(\large \lfloor\frac nd\rfloor\)\(\large \lfloor\frac md\rfloor\) 进行分块的,除法分块即可。

单次询问就是 \(\large \sqrt{N}\) 的。

欧拉函数&欧拉反演

\(求 \sum\limits_{i=1}^n{\sum\limits_{j=1}^m}{(i,j)}\)

结论

\[\large \sum\limits_{d=1}^{\min(n,m)}{\varphi{(d)}\lfloor\dfrac{n}{d}\rfloor\lfloor\dfrac{m}{d}\rfloor} \]

分析

\[\large \sum\limits_{i=1}^n{\sum\limits_{j=1}^m}{(i,j)}=\sum\limits_{i=1}^n{\sum\limits_{j=1}^m{\sum\limits_{d|(i,j)}{\varphi{(d)}}}}=\sum\limits_{d=1}^{\min(n,m)}{\varphi{(d)}\lfloor\dfrac{n}{d}\rfloor\lfloor\dfrac{m}{d}\rfloor} \]

\(求\sum\limits_{p \ is \ prime} \sum\limits_{i=1}^n \sum\limits_{i=1}^n{[(i,j)=p]}\)

结论

\[\large \sum\limits_{p \ is \ prime}2\sum\limits_{i=1}^{\lfloor\frac{n}{p}\rfloor}{\varphi(i)}-1 \]

分析

先给后面的 \(i,j\) 都除个 \(p\) ,然后根据欧拉函数的定义很容易得到这个柿子。

\(求\sum\limits_{i=1}^n\sum\limits_{j=1}^m(gcd(i,j)-1)(n-i)(m-j)\)

结论

\[\large \sum\limits_{d=1}^{min(n,m)}{\varphi{(d)}\sum\limits_{i=1}^{\lfloor \frac{n}{d}\rfloor}{(n-di)\sum\limits_{j=1}^{\lfloor \frac{m}{d}\rfloor}(m-dj)}}-\sum\limits_{i=1}^{n-1}{i\sum\limits_{j=1}^{m-1}{j}} \]

分析

\[\large \begin{split} &\ \ \ \ \sum\limits_{i=1}^n\sum\limits_{j=1}^m(gcd(i,j)-1)(n-i)(m-j)\\ &=\sum\limits_{i=1}^n\sum\limits_{j=1}^m(gcd(i,j))(n-i)(m-j)-\sum\limits_{i=1}^n{\sum\limits_{j=1}^m{ij}}\\ &=\sum\limits_{d=1}^{min(n,m)}{\varphi{(d)}\sum\limits_{i=1}^{\lfloor \frac{n}{d}\rfloor}{(n-di)\sum\limits_{j=1}^{\lfloor \frac{m}{d}\rfloor}(m-dj)}}-\sum\limits_{i=1}^{n-1}{i\sum\limits_{j=1}^{m-1}{j}} \end{split} \]

然后直接枚举算一下即可。

杜教筛

\(筛\varphi(x)前缀和\)

考虑到有 \(\varphi*I=id\) ,于是设 \(g=I\) ,发现剩下的都非常好求:

\(id\) 的前缀和就是等差数列求和,\(I\) 的前缀和就是区间长度。

\(筛\mu(x)前缀和\)

考虑到有 \(\mu*I=\varepsilon\) ,于是设 \(g=I\) ,剩下的也都很好求:

\(\varepsilon\) 前缀和就是 \(1\)\(I\) 前缀和同上。

\(筛id\cdot\varphi前缀和\)

考虑杜教筛,然后根据常见套路,可以卷上 \(id\)

\[\large (f*id)(n)=\sum_{d\vert n}d\cdot \varphi(d)\cdot\frac nd=n\sum_{d\vert n}\varphi(d)=n^2 \]

考虑这个 \(f\) 的前缀和:\(\large \sum\limits_{i=1}^ni^2=\frac{n(n+1)(2n+1)}{6}\) ,很好求。

再考虑 \(id\) 的前缀和,就是等差数列,也很好求。

那么就可以杜教筛了。

\(筛id\cdot \mu前缀和\)

还是常见套路...见到 \(id\) 就可以考虑拿个 \(id\) 来卷。

于是有:

\[(f*id)(n)=\sum_{d\vert n}d\cdot \mu(d)\cdot \frac nd=n\sum_{d\vert n}\mu(d)=n[n=1]=[n=1] \]

这个东西的前缀和很显然是 \(1\) ,然后 \(id\) 的前缀和是个等差数列,也很好求。

那么就可以杜教筛。

综合应用

\(求\sum\limits_{i=1}^n\sum\limits_{j=1}^nf(\gcd(i,j))f(lcm(i,j))\)

其中,\(\large f(x)=\sum\limits_{d\vert x}\mu(d)d\)

因为先推柿子推不动了,然后发现有个积性函数的性质,所以我们先不慌推柿子

首先根据狄利克雷卷积的性质,很容易知道 \(f\) 是个积性函数,有 \(f(n)f(m)=f(nm)\) \((\gcd(n,m)=1)\)

接下来考虑 \(f(\gcd(i,j))\times f(lcm(i,j))\)

\[\large \begin{split} &\ \ \ \ \ f(\gcd(i,j))\times f(lcm(i,j))\\ &=\prod_{i=1}^{k}f(p_{i}^{\min(a_i,b_i)})\times f(p_{i}^{\max(a_i,b_i)})\\ &=\prod_{i=1}^{k}f(p_i^{a_i})\times f(p_i^{b_i})\\ &=f(\prod_{i=1}^kp_i^{a_i})f(\prod_{i=1}^kp_i^{b_i})\\ &=f(i)\times f(j) \end{split} \]

然后再推推柿子吧:

\[\large \begin{split} &\ \ \ \ \ \sum\limits_{i=1}^n\sum\limits_{j=1}^nf(\gcd(i,j))\times f(lcm(i,j))\\ &=\sum\limits_{i=1}^n\sum\limits_{j=1}^nf(\gcd(i,j))\times f(\frac {i\cdot j}{\gcd(i,j)})\\ &=\sum\limits_{i=1}^n\sum\limits_{j=1}^nf(i)f(j)\\ &=\sum_{i=1}^nf(i)\sum_{j=1}^nf(j)\\ &=\left(\sum_{i=1}^nf(i)\right)^2\\ &=\left(\sum_{i=1}^n\sum_{d\vert i}\mu(d)d\right)^2\\ &=\left(\sum_{d=1}^n\mu(d)d\lfloor\frac nd\rfloor\right)^2 \end{split} \]

于是我们考虑杜教筛筛出 \(\mu(d)d\) ,然后除法分块即可。

(关于怎么筛可以见下文“杜教筛”部分)

\(求\sum\limits_{i=1}^{n}{(i,n)}\)

结论

\[\large \sum\limits_{d|n}{\varphi{(d)}\dfrac{n}{d}} \]

分析

\[\large \sum\limits_{i=1}^{n}{(i,n)}=\sum\limits_{i=1}^{n}{\sum\limits_{d|i}{\sum\limits_{d|n}{\varphi{(d)}}}}=\sum\limits_{d|n}{\sum\limits_{i=1}^{n}{\sum\limits_{d|i}{\varphi{(d)}}}}=\sum\limits_{d|n}{\varphi{(d)}\lfloor\dfrac{n}{d}\rfloor} \]

\(求\sum\limits_{k}{\varphi{(k)}[n\% k+m\% k\ge k]}\)

结论

\[\large \sum\limits_{k}{\varphi{(k)}[n\% k+m\% k\ge k]}=nm \]

分析

\[\large \begin{split} &\ \ \ \ \sum\limits_{k}{\varphi{(k)}[n\% k+m\% k\ge k]}\\ &=\sum\limits_{k}{\varphi{(k)}(\lfloor \dfrac{n+m}{k}\rfloor-\lfloor \dfrac{n}{k}\rfloor-\lfloor \dfrac{m}{k}\rfloor)}\\ &=\sum_\limits{k=1}^{n+m}{\varphi{(k)}\lfloor \dfrac{n+m}{k}\rfloor}-\sum_\limits{k=1}^{n}{\varphi{(k)}\lfloor \dfrac{n}{k}\rfloor}-\sum_\limits{k=1}^{m}{\varphi{(k)}\lfloor \dfrac{m}{k}\rfloor}\\ &=\sum\limits_{i=1}^{n+m}{\sum\limits_{k|i}{\varphi{(k)}}}- \sum\limits_{i=1}^{n}{\sum\limits_{k|i}{\varphi{(k)}}} -\sum\limits_{i=1}^{m}{\sum\limits_{k|i}{\varphi{(k)}}}\\ &=\sum\limits_{i=1}^{n+m}{i}- \sum\limits_{i=1}^{n}{i} -\sum\limits_{i=1}^{m}{i}\\ &=\dfrac{(n+m)(n+m+1)-n(n+1)-m(m+1)}{2}\\ &=nm \end{split} \]

\(求\sum\limits_{i=1}^n\sum\limits_{j=1}^m(i+j)^k\mu^2((i,j))(i,j)\)

先推一下柿子:

\[\large \begin{split} &\ \ \ \ \ \sum_{i=1}^n\sum_{j=1}^m(i+j)^k\mu^2(\gcd(i,j))\gcd(i,j)\\ &=\sum_{d=1}^nd^{k+1}\mu^2(d)\sum_{i=1}^{\lfloor\frac nd\rfloor}\sum_{j=1}^{\lfloor\frac md\rfloor}(i+j)^k[(i,j)=1]\\ &=\sum_{d=1}^{n}\mu^2(d)d^{k+1}\sum_{t=1}^{\lfloor\frac nd\rfloor}\mu(t)t^k\sum_{i=1}^{\lfloor\frac n{td}\rfloor}\sum_{j=1}^{\lfloor\frac m{td}\rfloor} (i+j)^k \end{split} \]

然后设 \(\large S(n,m)=\sum\limits_{i=1}^n\sum\limits_{j=1}^m(i+j)^k\)

发现剩下的柿子还是一个二次除法分块,于是考虑传统艺能,直接枚举倍数把第二个除法分块变成卷积的形式:

\(T=td\)

\[\large \sum_{T=1}^{n}T^kS(\lfloor\frac nT\rfloor,\lfloor\frac mT\rfloor)\sum_{d\vert T}d\mu^2(d)\mu(\frac Td) \]

接下来考虑两个问题。

首先是如何预处理 \(S(n,m)\) ,可以见上面的“基础知识”。

第二个问题是处理 \(\large \sum\limits_{d\vert T}d\mu^2(d)\mu(\frac Td)\)

发现是 \(id*\mu^2*\mu\) ,根据狄利克雷卷积的性质,得到这也是个积性函数,设为 \(f\)

讨论一下线性筛需要的端点值之后,直接线性筛预处理即可。

最后柿子就是一个除法分块,直接做。

\(求\sum\limits_{i=1}^n\sum\limits_{j=1}^mf(\gcd(i,j))\)

其中,我们定义 \(f(x)\) 表示:\(x\) 的所有质因子的最大次数。

还是推一推柿子吧:

\[\large \begin{split} &\ \ \ \ \ \sum\limits_{i=1}^n\sum\limits_{j=1}^m\sum_{d\vert \gcd(i,j)}f(d)[\gcd(i,j)=1]\\ &=\sum_{d=1}^nf(d)\sum_{i=1}^{\lfloor\frac nd\rfloor}\sum_{j=1}^{\lfloor\frac md\rfloor}[\gcd(i,j)=1]\\ &=\sum_{d=1}^n f(d)\sum_{k=1}^{\lfloor\frac nd\rfloor}\mu(k)\sum_{i=1}^{\lfloor\frac{n}{kd}\rfloor}\sum_{j=1}^{\lfloor\frac m{kd}\rfloor}1\\ &=\sum_{d=1}^n f(d)\sum_{k=1}^{\lfloor\frac nd\rfloor}\mu(k){\lfloor\frac{n}{kd}\rfloor}{\lfloor\frac m{kd}\rfloor} \end{split} \]

然后还是传统艺能,两次除法分块不好做,于是枚举乘积转化成一个整除分块和卷积的形式:

\[\large \sum_{d=1}^n f(d)\sum_{k=1}^{\lfloor\frac nd\rfloor}\mu(k){\lfloor\frac{n}{kd}\rfloor}{\lfloor\frac m{kd}\rfloor}=\sum_{t=1}^n {\lfloor\frac{n}{t}\rfloor}{\lfloor\frac m{t}\rfloor}\sum_{d\vert t}f(d)\mu(\frac td) \]

后面那个东西有个暴力的讨论发现可以直接筛,详见yyb的博客

前面的就是数论分块,结束。

例题

CF900D Unusual Sequences

题目:CF900D Unusual Sequences

解答:CF900D Unusual Sequences

P3455 [POI2007]ZAP-Queries

题目:P3455 [POI2007]ZAP-Queries

解答:P3455 [POI2007]ZAP-Queries

P2257 YY的GCD

题目:P2257 YY的GCD

解答:P2257 YY的GCD

[BZOJ2956]模积和

题目:[BZOJ2956]模积和

解答:[BZOJ2956]模积和

[BZOJ4804]欧拉心算

题目:[BZOJ4804]欧拉心算

解答:[BZOJ4804]欧拉心算

P3327 [SDOI2015]约数个数和

题目:P3327 [SDOI2015]约数个数和

解答:P3327 [SDOI2015]约数个数和

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

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

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

BS1598【BZOJ2813】奇妙的Fibonacci

题目:BS1598【BZOJ2813】奇妙的Fibonacci

解答:BS1598【BZOJ2813】奇妙的Fibonacci

BSOJ2985【BZOJ4407】于神之怒加强版

题目:BSOJ2985【BZOJ4407】于神之怒加强版

解答:BSOJ2985【BZOJ4407】于神之怒加强版

BSOJ3348【BZOJ4804】欧拉心算

题目:BSOJ3348【BZOJ4804】欧拉心算

解答:BSOJ3348【BZOJ4804】欧拉心算

BSOJ5019&P6156&P6222 简单题

题目:BSOJ5019&P6156&P6222 简单题

解答:BSOJ5019&P6156&P6222 简单题

BSOJ4129【BZOJ2693】jzptab

题目:BSOJ4129【BZOJ2693】jzptab

解答:BSOJ4129【BZOJ2693】jzptab

BSOJ5660【BZOJ3309】DZY Loves Math

题目:BSOJ5660【BZOJ3309】DZY Loves Math

解答:BSOJ5660【BZOJ3309】DZY Loves Math

BSOJ1596【BZOJ4805】欧拉函数求和

题目:BSOJ1596【BZOJ4805】欧拉函数求和

解答:BSOJ1596【BZOJ4805】欧拉函数求和

P5218 无聊的水题 II

题目:P5218 无聊的水题 II

解答:P5218 无聊的水题 II

P3172 [CQOI2015]选数

题目:P3172 [CQOI2015]选数

解答:P3172 [CQOI2015]选数

BSOJ5655【BZOJ4916】神犇和蒟蒻

题目:BSOJ5655【BZOJ4916】神犇和蒟蒻

解答:BSOJ5655【BZOJ4916】神犇和蒟蒻

51nod2026 Gcd and Lcm

题目:51nod2026 Gcd and Lcm

解答:51nod2026 Gcd and Lcm

题目:

解答:

扩展题

详见莫比乌斯反演(函数)练习题单

posted @ 2021-09-03 11:32  __Anchor  阅读(130)  评论(0编辑  收藏  举报