浅谈莫反

仅入门,仅是一篇学习小记,仅记录做题时的想法和过程,可能会有些许错误。

题单

莫比乌斯反演

对于一些函数 f(n)f(n) ,如果很难直接求出它的值,而容易求出其倍数和或约数和 g(n)g(n),那么可以通过莫比乌斯反演简化运算,求得 f(n)f(n) 的值。

前置知识

艾佛森括号

[P]={1If P is true0Otherwise[P] = \begin{cases} 1 &\text{If P is true}\\ 0 &\text{Otherwise} \end{cases}

此处 PP 是一个可真可假的命题。

数论分块

引理

a,b,cZ,abc=abc\forall a,b,c\in \mathbb{Z},\left\lfloor\dfrac{a}{bc}\right\rfloor = \left\lfloor{\dfrac{\left\lfloor\dfrac{a}{b}\right\rfloor}{c}}\right\rfloor

证明:

ab=ab+r(0r<1)\dfrac{a}{b} = \left\lfloor{\dfrac{a}{b}}\right\rfloor + r(0\le r < 1) abc=ab×1c=1c×(ab+r)=abc+rc=abc\left\lfloor\dfrac{a}{bc}\right\rfloor = \left\lfloor\dfrac{a}{b}\times\dfrac{1}{c}\right\rfloor = \left\lfloor{\dfrac{1}{c}\times\left({\left\lfloor{\dfrac{a}{b}}\right\rfloor + r}\right)}\right\rfloor = \left\lfloor{\dfrac{\left\lfloor\dfrac{a}{b}\right\rfloor}{c} + \dfrac{r}{c}}\right\rfloor = \left\lfloor{\dfrac{\left\lfloor{\dfrac{a}{b}}\right\rfloor}{c}}\right\rfloor

形式一

求:

i=1nni\sum\limits_{i=1}^{n}\left\lfloor\frac{n}{i}\right\rfloor

对于每一个 ni\left\lfloor\frac{n}{i}\right\rfloor 我们可以通过打表可以发现:有许多 ni\left\lfloor\frac{n}{i}\right\rfloor 的值是一样的,而且它们呈一个块状分布。

我们发现对于每一个值相同的块,它的最后一个数就是nni\frac{n}{\left\lfloor\frac{n}{i}\right\rfloor}

得出这个结论后,我们就可以做的 O(n)O(\sqrt{n}) 处理了。

for(int l = 1, r;l <= n; l = r + 1)
{
	r = n / (n / l);
	ans += (r - l + 1) * (n / l);
}

形式二

给定 kk,求:

i=1nkmodi\sum\limits_{i=1}^{n}k \bmod i

显然,上式等于:

i=1nkiki\sum\limits_{i=1}^{n}k - i \cdot \left\lfloor\frac{k}{i}\right\rfloor

可以转化为:

nki=1nikin \cdot k-\sum\limits_{i=1}^{n}i \cdot \left\lfloor\frac{k}{i}\right\rfloor

时间复杂度 O(n)\mathcal O(\sqrt{n})

CODE

形式三

求:

i=1nf(i)ni\sum\limits_{i=1}^{n}f(i) \cdot \left\lfloor\frac{n}{i}\right\rfloor

对前半段的函数维护一个前缀和,再利用整除分块处理式子的后半段,处理答案的时候,把两段相乘即可。

例题

P3935 Calculating

xx 分解质因数结果为 x=i=1zpikix=\prod\limits_{i=1}^{z}{p_i}^{k_i},令 f(x)=i=1z(ki+1)f(x)=\prod\limits_{i=1}^{z}(k_i+1)

i=lrf(i)\sum\limits_{i=l}^{r}f(i)998244353998244353 取模的结果。

上面的可以简化为:

ans=i=1rf(i)j=1l1f(j)ans=\sum\limits_{i=1}^{r}f(i)-\sum\limits_{j=1}^{l-1}f(j)

考虑如何求 i=1rf(i)\sum\limits_{i=1}^{r}f(i),对于 [1,r][1,r] 的整数 kkkk 作为因数在 [1,r][1,r] 中出现了 rk\left\lfloor\frac{r}{k}\right\rfloor 次,显然对答案的贡献为 rk\left\lfloor\frac{r}{k}\right\rfloor

则:

ans=i=1rrij=1l1l1jans=\sum\limits_{i=1}^{r}\left\lfloor\frac{r}{i}\right\rfloor-\sum\limits_{j=1}^{l-1}\left\lfloor\frac{l-1}{j}\right\rfloor

最后再数论分块即可。

时间复杂度 O(n)\mathcal O(\sqrt{n})

CODE

P2260 [清华集训2012]模积和

求:

i=1nj=1m(nmodi)×(mmodj),ij\sum\limits_{i=1}^{n}\sum\limits_{j=1}^{m}(n \bmod i) \times (m \bmod j),i \ne j

1994041719940417 的值。

首先,不妨设 nmn \leq m

显然,上式可简化为:

i=1nj=1m(nmodi)×(mmodj)i=1n(nmodi)×(mmodi)\sum\limits_{i=1}^{n}\sum\limits_{j=1}^{m}(n \bmod i)\times (m \bmod j)-\sum\limits_{i=1}^{n}(n \bmod i) \times (m \bmod i)

将两个求和拆开,有:

i=1n(nmodi)×j=1m(mmodj)i=1n(nmodi)(mmodi)\sum\limits_{i=1}^{n}(n\bmod i)\times\sum\limits_{j=1}^{m}(m \bmod j)-\sum\limits_{i=1}^{n}(n \bmod i)(m \bmod i)

根据取模的定义,amodb=ab×aba \bmod b=a-b \times \left\lfloor\frac{a}{b}\right\rfloor,将上式转换为:

i=1n(ni×ni)×j=1m(mj×mj)i=1n(ni×ni)×(mi×mi)\sum\limits_{i=1}^{n}(n-i\times \left\lfloor\frac{n}{i}\right\rfloor)\times\sum\limits_{j=1}^{m}(m - j \times \left\lfloor\frac{m}{j}\right\rfloor)-\sum\limits_{i=1}^{n}(n-i \times \left\lfloor\frac{n}{i}\right\rfloor)\times(m-i\times \left\lfloor\frac{m}{i}\right\rfloor)

将括号拆开,可以得到:

(n2i=1ni×ni)×(m2j=1mj×mj)i=1n(nmmi×nini×mi+i2×ni×mi)(n^2-\sum\limits_{i=1}^{n}i \times \left\lfloor\frac{n}{i}\right\rfloor)\times(m^2-\sum\limits_{j=1}^{m}j \times \left\lfloor\frac{m}{j}\right\rfloor)-\sum\limits_{i=1}^{n}(nm-mi\times\left\lfloor\frac{n}{i}\right\rfloor-ni\times\left\lfloor\frac{m}{i}\right\rfloor+i^2\times\left\lfloor\frac{n}{i}\right\rfloor\times\left\lfloor\frac{m}{i}\right\rfloor)

最后再数论分块即可。

时间复杂度 O(n)\mathcal O(\sqrt{n})

需要注意一下除法取模的问题(用逆元)。

CODE

积性函数

定义

如果一个数论函数 f(n)f(n) 满足 f(pq)=f(p)×f(q),gcd(p,q)=1f(pq)=f(p)\times f(q),\gcd(p,q)=1,则称 f(n)f(n) 是一个积性函数。

特别的,如果不要求 gcd(p,q)=1\gcd(p,q)=1 且依然满足上述式子的话,则称 f(n)f(n) 是一个完全积性函数。

性质

f(n)f(n)g(n)g(n) 都是积性函数,,则以下函数也为积性函数:

h(x)=f(xp)h(x)=fp(x)h(x)=f(x)g(x)h(x)=dxf(d)g(xd)\begin{aligned} & h(x) = f(x^p)\\ & h(x) = f^p(x)\\ & h(x) = f(x)g(x)\\ & h(x) = \sum_{d\mid x} f(d)g\left(\dfrac{x}{d}\right) \end{aligned}

常见积性函数

  • 单位函数 ϵ(n)=[n=1]\epsilon(n)=[n=1]
  • 幂函数 Idk(n)=nkId^k(n)=n^kid1(n)id^1(n) 通常简记为 id(n)id(n)
  • 常数函数 1(n)=11(n)=1
  • 因数个数 d(n)=dn1\operatorname{d}(n) = \sum\limits_{d\mid n} 1
  • 除数函数 σk(n)=dndk\sigma_{k}(n) = \sum\limits_{d\mid n} d^kk=1k=1 时为因数和函数,通常简记为 σn\sigma_{n}k=0k=0 时为因数个数函数 σ0(n)\sigma_{0}(n)
  • 欧拉函数 φ(n)=i=1n[gcd(i,n)=1]\varphi(n) = \sum\limits_{i=1}^{n} [\gcd(i,n) = 1]
  • 莫比乌斯函数 μ(n)={1n=10n 含有平方因子(1)kk为 n 的本质不同质因子个数\mu(n) = \begin{cases}1 &n=1\\0 &n\ \text{含有平方因子}\\(-1)^k &k\text{为}\ n\ \text{的本质不同质因子个数} \end{cases}

狄利克雷卷积

定义

定义两个数论函数 f,gf,g 的狄利克雷卷积为:

(fg)(n)=dnf(d)g(nd)\large(f\ast g) (n) = \sum_{d\mid n} f(d)g\left(\dfrac{n}{d}\right)

性质

  1. 显然满足交换律,结合律,分配律。
    • fg=gff \ast g = g \ast f
    • (fg)h=f(gh)(f \ast g) \ast h = f\ast (g\ast h)
    • f(g+h)=fg+fhf\ast (g+h) = f\ast g + f\ast h
  2. ϵ\epsilon 为狄利克雷卷积的单位元,有 (fϵ)(n)=f(n)(f\ast \epsilon)(n) = f(n)
  3. f,gf,g 为积性函数,则 fgf \ast g 为积性函数。
  4. ϵ=μ1=dnμ(d)\epsilon = \mu \ast 1=\sum\limits_{d\mid n} \mu (d)
  5. (Idk1)(n)=dnIdk(d)=dndk=σk(n)(\operatorname{Id}_k\ast 1)(n) = \sum_{d\mid n} \operatorname{Id_k}(d) = \sum_{d\mid n} d^k = \sigma_k(n)
  6. φ1=Idφ=Idμ\begin{aligned} \varphi \ast 1 =& \operatorname{Id}\\ \varphi =& \operatorname{Id}\ast \mu \end{aligned}

杜教筛

问题描述

S(n)=i=1nf(i)S(n)=\sum\limits_{i=1}^{n}f(i),其中 f(i)f(i) 为积性函数。

1n2311\le n\le2^{31}

算法解决

显然,线性筛是 O(n)\mathcal O(n) 的,过不了。

考虑推数学式子。

构造积性函数 h,gh,g,使得 h=fgh=f*g

有:

i=1nh(i)=i=1ndif(id)g(d)=d=1ng(d)i=1ndf(i)=d=1ng(d)S(nd)\sum\limits_{i=1}^{n}h(i)=\sum\limits_{i=1}^{n}\sum\limits_{d|i}f(\frac{i}{d})g(d)\\ =\sum\limits_{d=1}^{n}g(d)\sum\limits_{i=1}^{\left\lfloor\frac{n}{d}\right\rfloor}f(i)\\ =\sum\limits_{d=1}^{n}g(d)S(\left\lfloor\frac{n}{d}\right\rfloor)

因为我们要算的是 S(n)S(n),那把这项单独拎出来不就得了。

所以,有:

S(n)=i=1nh(i)d=2ng(d)S(nd)g(1)S(n)=\frac{\sum\limits_{i=1}^{n}h(i)-\sum\limits_{d=2}^{n}g(d)S(\left\lfloor\frac{n}{d}\right\rfloor)}{g(1)}

于是我们只要能快速算出 hh 的前缀和就可以了。

练习

μ\mu 的前缀和

因为 μI=ϵ\mu * I=\epsilon,那么取 f=μ,g=I,fg=ϵf=\mu,g=I,f*g=\epsilon。(参考)

inline ll GetSumu(int n)
{
    if (n <= N)
        return sumu[n]; // sumu是提前筛好的前缀和
    if (Smu[n])
        return Smu[n]; // 记忆化
    ll ret = 1ll;      // 单位元的前缀和就是 1
    for (int l = 2, r; l <= n; l = r + 1)
    {
        r = n / (n / l);
        ret -= (r - l + 1) * GetSumu(n / l);
        // (r - l + 1) 就是 I 在 [l, r] 的和
    }
    return Smu[n] = ret; // 记忆化
}
φ\varphi 的前缀和

因为 φI=id\varphi * I =id,那么取 f=φ,g=I,fg=idf=\varphi,g=I,f*g=id。(参考)

inline ll GetSphi(int n)
{
    if (n <= N)
        return sump[n]; // 提前筛好的
    if (Sphi[n])
        return Sphi[n];             // 记忆化
    ll ret = 1ll * n * (n + 1) / 2; // f * g = id 的前缀和
    for (int l = 2, r; l <= n; l = r + 1)
    {
        r = n / (n / l);
        ret -= (r - l + 1) * GetSphi(n / l);
        // 同上,因为两个的 g 都是 I
    }
    return Sphi[n] = ret; // 记忆化
}

另附一更全面的筛法 Min_25

莫比乌斯函数

定义

μ\mu 为莫比乌斯函数,定义为

μ(n)={1n=10n 含有平方因子(1)kk 为 n 的本质不同质因子个数\mu(n)=\begin{cases}1 && n=1\\0 &&n \ 含有平方因子 \\ (-1)^k && k\ 为 \ n \ 的本质不同质因子个数 \end{cases}

性质

莫比乌斯函数不仅是积性函数,还有如下性质(即 μ1=ϵ\mu * 1=\epsilon):

dnμ(d)={1n=10n1\sum\limits_{d|n} \mu(d) = \begin{cases} 1 && n=1 \\ 0 && n \ne 1\end{cases}

结论

[gcd(i,j)=1]=dgcd(i,j)μ(d)[\gcd(i,j)=1]=\sum\limits_{d| \gcd(i,j)} \mu(d)

线性筛

由于 μ\mu 函数为积性函数,因此可以线性筛莫比乌斯函数。

void getMu()
{
    mu[1] = 1;
    for (int i = 2; i <= n; ++i)
    {
        if (!flg[i])
            p[++tot] = i, mu[i] = -1;
        for (int j = 1; j <= tot && i * p[j] <= n; ++j)
        {
            flg[i * p[j]] = 1;
            if (i % p[j] == 0)
            {
                mu[i * p[j]] = 0;
                break;
            }
            mu[i * p[j]] = -mu[i];
        }
    }
}

莫比乌斯变换

f(n),g(n)f(n),g(n) 为两个数论函数。

根据 μ1=e\mu \ast 1=e,可以推出 f=fϵ=f(μ1)=fμ1=(f1)μf=f \ast \epsilon = f\ast(\mu \ast 1)=f \ast \mu \ast 1=(f \ast 1) \ast \mu

形式一

如果有:

f(n)=dng(d)f(n)=\sum\limits_{d|n}g(d)

那么有:

g(n)=dnμ(d)f(nd)g(n)=\sum\limits_{d|n} \mu(d)f(\frac{n}{d})

这种形式下,数论函数 f(n)f(n) 称为数论函数 g(n)g(n) 的莫比乌斯变换,数论函数 g(n)g(n) 称为数论函数 f(n)f(n) 的莫比乌斯逆变换(反演)。

形式二

如果有:

f(n)=ndg(d)f(n)=\sum\limits_{n|d}g(d)

那么有:

g(n)=ndμ(dn)f(d)g(n)=\sum\limits_{n|d} \mu(\frac{d}{n})f(d)

常见的几种反演形式

以下默认 nmn \le m

形式一

i=1nj=1m[gcd(i,j)=1]=i=1nj=1mxixjμ(x)=x=1ni=1nj=1m[xi][xj]μ(x)=x=1nμ(x)nxmx\sum\limits_{i=1}^{n}\sum\limits_{j=1}^{m}[\gcd(i,j)=1]\\ =\sum\limits_{i=1}^{n}\sum\limits_{j=1}^{m}\sum\limits_{x|i}\sum\limits_{x|j}\mu(x)\\ =\sum\limits_{x=1}^{n}\sum\limits_{i=1}^{n}\sum\limits_{j=1}^{m}[x|i][x|j]\mu(x)\\ =\sum\limits_{x=1}^{n}\mu(x)\left\lfloor\frac{n}{x}\right\rfloor\left\lfloor\frac{m}{x}\right\rfloor

数论分块即可 O(n)\mathcal O(n) 预处理,O(n)\mathcal O(\sqrt n) 单次询问。

形式二

i=1nj=1mgcd(i,j)=i=1nj=1mxixjφ(x)=x=1nφ(x)i=1nj=1m[xi][xj]=x=1nφ(x)nxmx\sum\limits_{i=1}^{n}\sum\limits_{j=1}^{m}\gcd(i,j)\\ =\sum\limits_{i=1}^{n}\sum\limits_{j=1}^{m}\sum\limits_{x|i}^{}\sum\limits_{x|j}^{}\varphi(x)\\ =\sum\limits_{x=1}^{n}\varphi(x)\sum\limits_{i=1}^{n}\sum\limits_{j=1}^{m}[x|i][x|j]\\ =\sum\limits_{x=1}^{n}\varphi(x)\left\lfloor\frac{n}{x}\right\rfloor\left\lfloor\frac{m}{x}\right\rfloor

数论分块即可 O(n)\mathcal O(n) 预处理,O(n)\mathcal O(\sqrt n) 单次询问。

形式三

i=1nj=1mf(gcd(i,j))=d=1nf(d)i=1nj=1m[gcd(i,j)=d]=d=1nf(d)i=1ndj=1md[gcd(i,j)=1]=d=1nf(d)k=1ndμ(k)ndkmdk\sum\limits_{i=1}^{n}\sum\limits_{j=1}^{m}f(\gcd(i,j))\\ =\sum\limits_{d=1}^{n}f(d)\sum\limits_{i=1}^{n}\sum\limits_{j=1}^{m}[\gcd(i,j)=d]\\ =\sum\limits_{d=1}^{n}f(d)\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_{d=1}^{n}f(d)\sum\limits_{k=1}^{\left\lfloor\frac{n}{d}\right\rfloor}\mu(k)\left\lfloor\frac{n}{dk}\right\rfloor\left\lfloor\frac{m}{dk}\right\rfloor

dk=Tdk=T,则:

=T=1nnTmTdTf(d)μ(Td)=\sum\limits_{T=1}^{n}\left\lfloor\frac{n}{T}\right\rfloor\left\lfloor\frac{m}{T}\right\rfloor\sum\limits_{d|T}f(d)\mu(\frac{T}{d})

数论分块即可 O(n)\mathcal O(n) 预处理,O(n)\mathcal O(\sqrt n) 单次询问。


简单证明一下:

d=1np=1ndp=T=1npTp\sum_{d=1}^{n}\sum_{p=1}^{\lfloor\frac{n}{d}\rfloor}p=\sum_{T=1}^{n}\sum_{p|T}p

有:

d=1np=1ndp=d=1np=1npd[dp]=T=1npTp\sum_{d=1}^{n}\sum_{p=1}^{\lfloor\frac{n}{d}\rfloor}p\\ =\sum_{d=1}^{n}\sum_{p=1}^{n}\frac{p}{d}[d|p]\\ =\sum_{T=1}^{n}\sum_{p|T}p

证毕。

由上,也有:

d=1np=1ndpf(d)=T=1npTpf(Td)=T=1ndTTdf(d)\sum_{d=1}^{n}\sum_{p=1}^{\lfloor\frac{n}{d}\rfloor}pf(d)\\ =\sum_{T=1}^{n}\sum_{p|T}pf(\frac{T}{d})\\ =\sum_{T=1}^{n}\sum_{d|T}\frac{T}{d}f(d)

例题

SP4491 PGCD - Primes in GCD Table

求:

pprimesx=1ny=1m[gcd(x,y)=p]\sum\limits_{p \in primes}\sum\limits_{x=1}^{n}\sum\limits_{y=1}^{m}[\gcd(x,y)=p]

化简得:

pprimesx=1npy=1mp[gcd(x,y)=1]\sum\limits_{p \in primes}\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]

根据:

dnμ(d)={1n=10n1\sum\limits_{d|n} \mu(d) = \begin{cases} 1 && n=1 \\ 0 && n \ne 1\end{cases}

有:

pprimesx=1npy=1mpki,kjμ(k)\sum\limits_{p \in primes}\sum\limits_{x=1}^{\left\lfloor\frac{n}{p}\right\rfloor}\sum\limits_{y=1}^{\left\lfloor\frac{m}{p}\right\rfloor}\sum\limits_{k|i,k|j}\mu(k)

先枚举 kk,有:

pprimesk=1min(np,mp)x=1npy=1mpμ(k)[ki][kj]\sum\limits_{p \in primes}\sum\limits_{k=1}^{\min(\left\lfloor\frac{n}{p}\right\rfloor,\left\lfloor\frac{m}{p}\right\rfloor)}\sum\limits_{x=1}^{\left\lfloor\frac{n}{p}\right\rfloor}\sum\limits_{y=1}^{\left\lfloor\frac{m}{p}\right\rfloor}\mu(k)[k|i][k|j]

那么就有:

pprimesk=1min(np,mp)npkmpkμ(k)\sum\limits_{p \in primes}\sum\limits_{k=1}^{\min(\left\lfloor\frac{n}{p}\right\rfloor,\left\lfloor\frac{m}{p}\right\rfloor)}\left\lfloor\frac{n}{pk}\right\rfloor\left\lfloor\frac{m}{pk}\right\rfloor\mu(k)

T=pkT=pk,有:

T=1min(n,m)nTmTpprimes,pTμ(Tp)\sum\limits_{T=1}^{\min(n,m)}\left\lfloor\frac{n}{T}\right\rfloor\left\lfloor\frac{m}{T}\right\rfloor\sum\limits_{p\in primes,p|T} \mu(\frac{T}{p})

求前缀和再数论分块即可。

CODE

SP26017 GCDMAT - GCD OF MATRIX

求:

i=i1i2j=j1j2gcd(i,j)\sum\limits_{i=i_1}^{i_2}\sum\limits_{j=j_1}^{j_2}\gcd(i,j)

考虑容斥,设 S(n,m)=i=1nj=1mgcd(i,j)S(n,m)=\sum\limits_{i=1}^{n}\sum\limits_{j=1}^{m}\gcd(i,j),则有:

ans=S(i2,j2)S(i11,j2)S(i2,j11)+S(i11,j11)ans=S(i_2,j_2)-S(i_1-1,j_2)-S(i_2,j_1-1)+S(i_1-1,j_1-1)

单看每一个 SS,显然有:

i=1nj=1mgcd(i,j)=d=1nd×i=1nj=1m[gcd(i,j)=d]=d=1nd×i=1ndj=1md[gcd(i,j)=1]=d=1nd×i=1ndj=1mdpgcd(i,j)μ(p)\begin{aligned} &\sum\limits_{i=1}^{n}\sum\limits_{j=1}^{m}\gcd(i,j)\\ &=\sum\limits_{d=1}^{n}d \times\sum\limits_{i=1}^{n}\sum\limits_{j=1}^{m}[\gcd(i,j)=d]\\ &=\sum\limits_{d=1}^{n}d\times\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_{d=1}^{n}d\times\sum\limits_{i=1}^{\left\lfloor\frac{n}{d}\right\rfloor}\sum\limits_{j=1}^{\left\lfloor\frac{m}{d}\right\rfloor}\sum\limits_{p|\gcd(i,j)}\mu(p)\\ \end{aligned}

枚举 pp,有:

d=1nd×p=1ndi=1npdj=1mpdpgcd(i,j)μ(p)=d=1np=1ndnpdmpdd×μ(p)\sum\limits_{d=1}^{n}d \times \sum\limits_{p=1}^{\left\lfloor\frac{n}{d}\right\rfloor} \sum\limits_{i=1}^{\left\lfloor\frac{n}{pd}\right\rfloor}\sum\limits_{j=1}^{\left\lfloor\frac{m}{pd}\right\rfloor}\sum\limits_{p|\gcd(i,j)}\mu(p)\\ =\sum\limits_{d=1}^{n}\sum\limits_{p=1}^{\left\lfloor\frac{n}{d}\right\rfloor}\left\lfloor\frac{n}{pd}\right\rfloor\left\lfloor\frac{m}{pd}\right\rfloor d \times \mu(p)

T=pdT=pd,有:

d=1np=1ndnTmTTp×μ(p)\sum\limits_{d=1}^{n}\sum\limits_{p=1}^{\left\lfloor\frac{n}{d}\right\rfloor}\left\lfloor\frac{n}{T}\right\rfloor\left\lfloor\frac{m}{T}\right\rfloor\frac{T}{p}\times\mu(p)

再枚举 TT,有:

T=1npTnTmTTp×μ(p)=T=1nnTmTpTTp×μ(p)=T=1nnTmTφ(T)\sum\limits_{T=1}^{n}\sum\limits_{p|T}^{}\left\lfloor\frac{n}{T}\right\rfloor\left\lfloor\frac{m}{T}\right\rfloor\frac{T}{p}\times \mu(p)\\ =\sum\limits_{T=1}^{n}\left\lfloor\frac{n}{T}\right\rfloor\left\lfloor\frac{m}{T}\right\rfloor\sum\limits_{p|T}^{}\frac{T}{p}\times\mu(p)\\ =\sum\limits_{T=1}^{n}\lfloor\frac{n}{T}\rfloor\lfloor\frac{m}{T}\rfloor\varphi(T)

前半部分整除分块,后半部分线性筛即可。

CODE

P3327 [SDOI2015]约数个数和

求:

i=1nj=1md(ij)\sum\limits_{i=1}^{n}\sum\limits_{j=1}^{m}d(i \cdot j)

其中,有:

d(n)=in1d(n)=\sum\limits_{i|n}1

首先,要了解 dd 函数的一个特殊性质:

d(ij)=xiyj[gcd(x,y)=1]d(i \cdot j)=\sum\limits_{x|i}\sum\limits_{y|j}[\gcd(x,y)=1]

因此所求为:

i=1nj=1mxiyj[gcd(x,y)=1]=x=1ny=1mnxmy[gcd(x,y)=1]=x=1ny=1mnxmypgcd(x,y)μ(p)=x=1ny=1mnxmyp=1n[px][py]μ(p)=p=1nμ(p)i=1npj=1mpnipmjp=p=1nμ(p)i=1npnipj=1mpmjp\sum\limits_{i=1}^{n}\sum\limits_{j=1}^{m}\sum\limits_{x|i}\sum\limits_{y|j}[\gcd(x,y)=1]\\ =\sum\limits_{x=1}^{n}\sum\limits_{y=1}^{m}\lfloor\frac{n}{x}\rfloor\lfloor\frac{m}{y}\rfloor[\gcd(x,y)=1]\\ =\sum\limits_{x=1}^{n}\sum\limits_{y=1}^{m}\lfloor\frac{n}{x}\rfloor\lfloor\frac{m}{y}\rfloor\sum\limits_{p|\gcd(x,y)}\mu(p)\\ =\sum\limits_{x=1}^{n}\sum\limits_{y=1}^{m}\lfloor\frac{n}{x}\rfloor\lfloor\frac{m}{y}\rfloor\sum\limits_{p=1}^{n}[p|x][p|y]\mu(p)\\ =\sum\limits_{p=1}^{n}\mu(p)\sum\limits_{i=1}^{\lfloor\frac{n}{p}\rfloor}\sum\limits_{j=1}^{\lfloor\frac{m}{p}\rfloor}\lfloor\frac{n}{ip}\rfloor\lfloor\frac{m}{jp}\rfloor\\ =\sum\limits_{p=1}^{n}\mu(p)\sum\limits_{i=1}^{\lfloor\frac{n}{p}\rfloor}\lfloor\frac{n}{ip}\rfloor\sum\limits_{j=1}^{\lfloor\frac{m}{p}\rfloor}\lfloor\frac{m}{jp}\rfloor

CODE

P5221 Product

求:

i=1nj=1nlcm(i,j)gcd(i,j)(mod104857601)\prod\limits_{i=1}^{n}\prod\limits_{j=1}^{n}\frac{\operatorname{lcm}(i,j)}{\gcd(i,j)} \pmod{104857601}

1n1061 \leq n \leq 10^6

化简式子,有:

i=1nj=1nlcm(i,j)gcd(i,j)=i=1nj=1ni×jgcd(i,j)2=i=1nj=1ni×j(i=1nj=1ngcd(i,j))2\prod\limits_{i=1}^{n}\prod\limits_{j=1}^{n}\frac{\operatorname{lcm}(i,j)}{\gcd(i,j)}\\ =\prod\limits_{i=1}^{n}\prod\limits_{j=1}^{n}\frac{i \times j}{\gcd(i,j)^2}\\ =\frac{\prod\limits_{i=1}^{n}\prod\limits_{j=1}^{n}i\times j}{\left(\prod\limits_{i=1}^{n}\prod\limits_{j=1}^{n}\gcd(i,j)\right)^2}

先看上面那坨:

i=1nj=1ni×j=i=1nin×n!=(n!)n×i=1nin=(n!)n×(n!)n=(n!)2n\prod_{i=1}^{n}\prod_{j=1}^{n} i\times j\\ =\prod_{i=1}^{n}i^n \times n!\\ =(n!)^n \times \prod\limits_{i=1}^{n}i^n\\ =(n!)^n \times (n!)^n\\ =(n!)^{2n}

然后再看下面那坨:

i=1nj=1ngcd(i,j)=d=1ni=1nj=1n[gcd(i,j)==d]gcd(i,j)=d=1ndi=1nj=1n[gcd(i,j)==d]==d=1ndi=1ndj=1nd[gcd(i,j)==1]\prod_{i=1}^{n}\prod_{j=1}^{n}gcd(i,j)\\ =\prod_{d=1}^{n}\prod_{i=1}^{n}\prod_{j=1}^{n}[gcd(i,j)==d]\gcd(i,j)\\ =\prod_{d=1}^{n}d^{\sum\limits_{i=1}^{n}\sum\limits_{j=1}^{n}[gcd(i,j)==d]}\\ ==\prod_{d=1}^{n}d^{\sum\limits_{i=1}^{\left\lfloor\frac{n}{d}\right\rfloor}\sum\limits_{j=1}^{\left\lfloor\frac{n}{d}\right\rfloor}[gcd(i,j)==1]}

先只看指数:

i=1ndj=1nd[gcd(i,j)==1]=(i=1nd(2×j=1i[gcd(i,j)=1]))1=2×(i=1ndφ(i))1\sum\limits_{i=1}^{\left\lfloor\frac{n}{d}\right\rfloor}\sum\limits_{j=1}^{\left\lfloor\frac{n}{d}\right\rfloor}[gcd(i,j)==1]\\ =\left(\sum\limits_{i=1}^{\left\lfloor\frac{n}{d}\right\rfloor}\left(2 \times \sum\limits_{j=1}^{i}[\gcd(i,j)=1]\right)\right)-1\\ =2\times \left(\sum\limits_{i=1}^{\left\lfloor\frac{n}{d}\right\rfloor}\varphi(i)\right)-1

所以原式可化为:

(n!)2n(d=1nd(2×i=1ndφ(i))1)2(modmod)\frac{(n!)^{2n}}{\left(\prod\limits_{d=1}^{n}d^{\left(2\times \sum\limits_{i=1}^{\left\lfloor\frac{n}{d}\right\rfloor}\varphi(i)\right)-1}\right)^2} \pmod{mod}

根据欧拉定理,当 gcd(a,m)=1\gcd(a,m)=1 时,有 ab=ab mod φ(m)(modm)a^b=a^{b \ \bmod \ \varphi(m)}\pmod{m}

因为模数为质数,所以 φ(m)=m1\varphi(m)=m-1

所以原式可进一步化为:

(n!)2n(d=1nd(2×i=1ndφ(i))1mod(mod1))2(modmod)\frac{(n!)^{2n}}{\left(\prod\limits_{d=1}^{n}d^{\left(2\times \sum\limits_{i=1}^{\left\lfloor\frac{n}{d}\right\rfloor}\varphi(i)\right)-1}\bmod (mod-1)\right)^2} \pmod{mod}

CODE

P6055 [RC-02] GCD

求:

i=1nj=1np=1njq=1nj[gcd(i,j)=1][gcd(p,q)=1]\sum\limits_{i=1}^n \sum\limits_{j=1}^n \sum\limits_{p=1}^{\lfloor \frac{n}{j}\rfloor} \sum\limits_{q=1}^{\lfloor \frac{n}{j}\rfloor} [\gcd(i,j)=1][\gcd(p,q)=1]

1n2×1091 \leq n \leq 2\times 10^9

化简式子,有:

i=1nj=1np=1njq=1nj[gcd(i,j)=1][gcd(p,q)=1]=i=1nj=1np=1nq=1n[gcd(i,j)=1][gcd(p,q)=j]=i=1np=1nq=1n[gcd(i,p,q)=1]=i=1np=1nq=1ndgcd(i,p,q)μ(d)=d=1ni=1np=1nq=1n[di][dp][dq]μ(d)=d=1ni=1ndp=1ndq=1ndμ(d)=d=1nμ(d)nd3\sum\limits_{i=1}^n \sum\limits_{j=1}^n \sum\limits_{p=1}^{\lfloor \frac{n}{j}\rfloor} \sum\limits_{q=1}^{\lfloor \frac{n}{j}\rfloor} [\gcd(i,j)=1][\gcd(p,q)=1]\\ =\sum\limits_{i=1}^{n}\sum\limits_{j=1}^{n}\sum\limits_{p=1}^{n}\sum\limits_{q=1}^{n}[\gcd(i,j)=1][\gcd(p,q)=j]\\ =\sum\limits_{i=1}^{n}\sum\limits_{p=1}^{n}\sum\limits_{q=1}^{n}[\gcd(i,p,q)=1]\\ =\sum\limits_{i=1}^{n}\sum\limits_{p=1}^{n}\sum\limits_{q=1}^{n}\sum\limits_{d|\gcd(i,p,q)}\mu(d)\\ =\sum\limits_{d=1}^{n}\sum\limits_{i=1}^{n}\sum\limits_{p=1}^{n}\sum\limits_{q=1}^{n}[d|i][d|p][d|q]\mu(d)\\ =\sum\limits_{d=1}^{n}\sum\limits_{i=1}^{\lfloor\frac{n}{d}\rfloor}\sum\limits_{p=1}^{\lfloor\frac{n}{d}\rfloor}\sum\limits_{q=1}^{\lfloor\frac{n}{d}\rfloor}\mu(d)\\ =\sum\limits_{d=1}^{n}\mu(d)\lfloor\frac{n}{d}\rfloor^3

用杜教筛维护 μ\mu 的前缀和即可。

时间复杂度 O(n23)\mathcal{O}(n^{\frac{2}{3}})

CODE

P3768 简单的数学题

求:

i=1nj=1nijgcd(i,j)\sum\limits_{i=1}^{n}\sum_{j=1}^{n}ij\gcd(i,j)

按照套路,化简式子,有:

i=1nj=1nijgcd(i,j)=d=1nd3i=1nj=1midjd[gcd(i,j)=d]=d=1nd3i=1ndj=1ndij[gcd(i,j)=1]=d=1nd3i=1ndj=1ndijp=1ndμ(p)[pi][pj]=d=1nd3i=1ndj=1ndijp=1ndμ(p)[pi][pj]=d=1nd3p=1ndμ(p)i=1ndi[pi]j=1ndj[pj]=d=1nd3p=1ndμ(p)i=1ndi[pi]j=1ndj[pj]=d=1nd3p=1ndμ(p)(i=1ndi[pi])2=d=1nd3p=1ndμ(p)p2s(npd)2s(n)=i=1ni=i×(i1)2=T=1ns(nT)2pTμ(p)(Tp)3p2=T=1ns(nT)2T2pTμ(p)Tp=T=1ns(nT)2T2φ(T)\begin{aligned} &\sum\limits_{i=1}^{n}\sum_{j=1}^{n}ij\gcd(i,j)\\ &=\sum\limits_{d=1}^{n}d^3\sum\limits_{i=1}^{n}\sum_{j=1}^{m}\frac{i}{d}\cdot\frac{j}{d}[\gcd(i,j)=d]\\ &=\sum\limits_{d=1}^{n}d^3\sum\limits_{i=1}^{\lfloor\frac{n}{d}\rfloor}\sum_{j=1}^{\lfloor\frac{n}{d}\rfloor}i\cdot j[\gcd(i,j)=1]\\ &=\sum\limits_{d=1}^{n}d^3\sum\limits_{i=1}^{\lfloor\frac{n}{d}\rfloor}\sum_{j=1}^{\lfloor\frac{n}{d}\rfloor}i\cdot j\sum\limits_{p=1}^{\lfloor\frac{n}{d}\rfloor}\mu(p)[p|i][p|j]\\ &=\sum\limits_{d=1}^{n}d^3\sum\limits_{i=1}^{\lfloor\frac{n}{d}\rfloor}\sum_{j=1}^{\lfloor\frac{n}{d}\rfloor}i\cdot j\sum\limits_{p=1}^{\lfloor\frac{n}{d}\rfloor}\mu(p)[p|i][p|j]\\ &=\sum\limits_{d=1}^{n}d^3\sum\limits_{p=1}^{\lfloor\frac{n}{d}\rfloor}\mu(p)\sum_{i=1}^{\lfloor\frac{n}{d}\rfloor}i[p|i]\sum\limits_{j=1}^{\lfloor\frac{n}{d}\rfloor}j[p|j]\\ &=\sum\limits_{d=1}^{n}d^3\sum\limits_{p=1}^{\lfloor\frac{n}{d}\rfloor}\mu(p)\sum_{i=1}^{\lfloor\frac{n}{d}\rfloor}i[p|i]\sum\limits_{j=1}^{\lfloor\frac{n}{d}\rfloor}j[p|j]\\ &=\sum\limits_{d=1}^{n}d^3\sum\limits_{p=1}^{\lfloor\frac{n}{d}\rfloor}\mu(p)\left(\sum_{i=1}^{\lfloor\frac{n}{d}\rfloor}i[p|i]\right)^2\\ &=\sum\limits_{d=1}^{n}d^3\sum\limits_{p=1}^{\lfloor\frac{n}{d}\rfloor}\mu(p)p^2s(\lfloor\frac{n}{pd}\rfloor)^2& s(n)=\sum\limits_{i=1}^{n}i=\frac{i \times (i-1)}{2}\\ &=\sum\limits_{T=1}^{n}s(\lfloor\frac{n}{T}\rfloor)^2\sum\limits_{p|T}\mu(p)\left(\frac{T}{p}\right)^3p^2\\ &=\sum\limits_{T=1}^{n}s(\lfloor\frac{n}{T}\rfloor)^2T^2\sum\limits_{p|T}\mu(p)\frac{T}{p}\\ &=\sum_{T=1}^{n}s(\lfloor\frac{n}{T}\rfloor)^2T^2\varphi(T) \end{aligned}

T=1nT2φ(T)\sum\limits_{T=1}^{n}T^2\varphi(T) 用杜教筛即可。

CODE

[CQOI2015]选数

求:

a1=LRa2=LRan=LR[gcdi=1n(ai)=K]\sum\limits_{a_1=L}^{R}\sum_{a_2=L}^{R}\cdots \sum_{a_n=L}^{R}[\gcd_{i=1}^{n}(a_i)=K]

满足 1n,K109,1LR109,RL1051\leq n,K\leq 10^9,1 \leq L \leq R\leq 10^9,R-L\leq 10^5

显然,定义 l=LK,r=RKl=\lceil\frac{L}{K}\rceil,r=\lfloor\frac{R}{K}\rfloor,原式等于:

a1=lra2=lran=lr[gcdi=1n(ai)=1]=a1=lra2=lran=lrpgcdi=1n(ai)μ(p)=p=1rμ(p)(rpl1p)n\begin{aligned} &\sum_{a_1=l}^{r}\sum_{a_2=l}^{r}\cdots\sum_{a_n=l}^{r}[\gcd_{i=1}^{n}(a_i)=1]\\ &=\sum_{a_1=l}^{r}\sum_{a_2=l}^{r}\cdots\sum_{a_n=l}^{r}\sum_{p|\gcd\limits_{i=1}^{n}(a_i)}\mu(p)\\ &=\sum_{p=1}^{r}\mu(p)\left(\lfloor\frac{r}{p}\rfloor-\lfloor\frac{l-1}{p}\rfloor\right)^{n} \end{aligned}

最后杜教筛维护 μ\mu 的前缀和即可。

CODE

P4449 于神之怒加强版

求:

i=1nj=1mgcd(i,j)k\sum\limits_{i=1}^{n}\sum_{j=1}^{m}\gcd(i,j)^k

按照套路,化简式子,有:

i=1nj=1mgcd(i,j)k=d=1ndki=1nj=1m[gcd(i,j)=d]=d=1ndki=1ndj=1nd[gcd(i,j)=1]=d=1ndki=1ndj=1ndp=1ndμ(p)[pi][pj]d=1ndkp=1ndμ(p)i=1nd[pi]j=1md[pj]=d=1ndkp=1ndμ(p)×ndpmdp=T=1nnTmTdTdkμ(Td)\sum\limits_{i=1}^{n}\sum_{j=1}^{m}\gcd(i,j)^k\\ =\sum_{d=1}^{n}d^k\sum\limits_{i=1}^{n}\sum_{j=1}^{m}[\gcd(i,j)=d]\\ =\sum_{d=1}^{n}d^k\sum_{i=1}^{\lfloor\frac{n}{d}\rfloor}\sum_{j=1}^{\lfloor\frac{n}{d}\rfloor}[\gcd(i,j)=1]\\ =\sum_{d=1}^{n}d^k\sum_{i=1}^{\lfloor\frac{n}{d}\rfloor}\sum_{j=1}^{\lfloor\frac{n}{d}\rfloor}\sum_{p=1}^{\lfloor\frac{n}{d}\rfloor}\mu(p)[p|i][p|j]\\ \sum_{d=1}^{n}d^k\sum_{p=1}^{\lfloor\frac{n}{d}\rfloor}\mu(p)\sum_{i=1}^{\lfloor\frac{n}{d}\rfloor}[p|i]\sum_{j=1}^{\lfloor\frac{m}{d}\rfloor}[p|j]\\ =\sum\limits_{d=1}^{n}d^k\sum\limits_{p=1}^{\lfloor\frac{n}{d}\rfloor}\mu(p)\times \lfloor\frac{n}{dp}\rfloor\lfloor\frac{m}{dp}\rfloor\\ =\sum\limits_{T=1}^{n}\lfloor\frac{n}{T}\rfloor\lfloor\frac{m}{T}\rfloor\sum_{d|T}d^k \mu(\frac{T}{d})\\

g(n)=dndkμ(nd)g(n)=\sum\limits_{d|n}d^k\mu(\frac{n}{d}),显然 gg 是个乘性函数,线性筛即可。

CODE

P6825 「EZEC-4」求和

求:

i=1nj=1ngcd(i,j)i+j\sum_{i=1}^{n}\sum_{j=1}^{n}\gcd(i,j)^{i+j}

先化简原式,有:

i=1nj=1ngcd(i,j)i+j=d=1ni=1nj=1ndi+j[gcd(i,j)=d]=d=1ni=1ndj=1nddd(i+j)[gcd(i,j)=1]=d=1ni=1ndj=1nddd(i+j)pgcd(i,j)μ(p)=d=1np=1ndμ(p)i=1ndj=1nddd(i+j)[pi][pj]=d=1np=1ndμ(p)i=1npdj=1npdddp(i+j)=d=1np=1ndμ(p)i=1nTj=1nTdT(i+j)T=dp=d=1np=1ndμ(p)i=1nT(dT)ij=1nT(dT)j=d=1np=1ndμ(p)(i=1nT(dT)i)2\begin{aligned} &\sum_{i=1}^{n}\sum_{j=1}^{n}\gcd(i,j)^{i+j}\\ &=\sum_{d=1}^{n}\sum_{i=1}^{n}\sum_{j=1}^{n}d^{i+j}[\gcd(i,j)=d]\\ &=\sum_{d=1}^{n}\sum_{i=1}^{\lfloor\frac{n}{d}\rfloor}\sum_{j=1}^{\lfloor\frac{n}{d}\rfloor}d^{d\cdot(i+j)}[\gcd(i,j)=1]\\ &=\sum_{d=1}^{n}\sum_{i=1}^{\lfloor\frac{n}{d}\rfloor}\sum_{j=1}^{\lfloor\frac{n}{d}\rfloor}d^{d\cdot(i+j)}\sum_{p|\gcd(i,j)}\mu(p)\\ &=\sum_{d=1}^{n}\sum_{p=1}^{\lfloor\frac{n}{d}\rfloor}\mu(p)\sum_{i=1}^{\lfloor\frac{n}{d}\rfloor}\sum_{j=1}^{\lfloor\frac{n}{d}\rfloor}d^{d\cdot(i+j)}[p|i][p|j]\\ &=\sum_{d=1}^{n}\sum_{p=1}^{\lfloor\frac{n}{d}\rfloor}\mu(p)\sum_{i=1}^{\lfloor\frac{n}{pd}\rfloor}\sum_{j=1}^{\lfloor\frac{n}{pd}\rfloor}d^{dp\cdot(i+j)}\\ &=\sum_{d=1}^{n}\sum_{p=1}^{\lfloor\frac{n}{d}\rfloor}\mu(p)\sum_{i=1}^{\lfloor\frac{n}{T}\rfloor}\sum_{j=1}^{\lfloor\frac{n}{T}\rfloor}d^{T\cdot(i+j)} & T=dp\\ &=\sum_{d=1}^{n}\sum_{p=1}^{\lfloor\frac{n}{d}\rfloor}\mu(p)\sum_{i=1}^{\lfloor\frac{n}{T}\rfloor}(d^T)^i\sum_{j=1}^{\lfloor\frac{n}{T}\rfloor}(d^T)^j\\ &=\sum_{d=1}^{n}\sum_{p=1}^{\lfloor\frac{n}{d}\rfloor}\mu(p)\left(\sum_{i=1}^{\lfloor\frac{n}{T}\rfloor}(d^T)^i\right)^2 \end{aligned}

再看后面那部分,令 x=TpTx=\frac{T}{p}^T

SnS_n 为等比数列前 nn 项和,则有:

Sn=Sn2(1+an2)+an[2n]S_n=S_{\lfloor\frac{n}{2}\rfloor}(1+a^{\lfloor\frac{n}{2}\rfloor})+a^n[2 \nmid n]

即可 O(logn)\mathcal O(\log n) 求解。

时间复杂度 O(nlogn)\mathcal O(n \log n)

CODE

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

求(对 2010100920101009 取模):

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

易得:

i=1nj=1mijgcd(i,j)\sum\limits_{i=1}^{n}\sum\limits_{j=1}^{m}\frac{i \cdot j}{\gcd(i,j)}

枚举最大公因数 dd,有:

i=1nj=1mdi,djgcd(id,jd)=1ijd\sum\limits_{i=1}^{n}\sum\limits_{j=1}^{m}\sum\limits_{d|i,d|j\gcd(\frac{i}{d},\frac{j}{d})=1} \frac{i \cdot j}{d}

又有:

d=1min(n,m)di=1ndj=1md[gcd(i,j)=1]ij\sum\limits_{d=1}^{\min(n,m)}d\cdot\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]i\cdot j

由:

dnμ(d)=[n=1]\sum\limits_{d|n}\mu(d)=[n=1]

得:

d=1min(n,m)di=1ndj=1mdijagcd(i,j)μ(a)\sum\limits_{d=1}^{\min(n,m)}d\cdot\sum\limits_{i=1}^{\left\lfloor\frac{n}{d}\right\rfloor}\sum\limits_{j=1}^{\left\lfloor\frac{m}{d}\right\rfloor}i\cdot j\sum\limits_{a|\gcd(i,j)}\mu(a)

合并得:

d=1min(n,m)dt=1ndt2μ(t)S(ndt)S(mdt)\sum\limits_{d=1}^{\min(n,m)}d\cdot\sum\limits_{t=1}^{\left\lfloor\frac{n}{d}\right\rfloor}t^2\mu(t)S(\left\lfloor\frac{n}{dt}\right\rfloor)S(\left\lfloor\frac{m}{dt}\right\rfloor)

其中:

S(n)=n(n+1)2S(n)=\frac{n \cdot (n +1)}{2}

T=dtT=dt,有:

T=1min(n,m)S(nT)S(mT)aTa(Ta)2μ(Ta)\sum\limits_{T=1}^{\min(n,m)}S(\left\lfloor\frac{n}{T}\right\rfloor)S(\left\lfloor\frac{m}{T}\right\rfloor)\sum\limits_{a|T}a \cdot (\frac{T}{a})^2\mu(\frac{T}{a})

即:

T=1min(n,m)S(nT)S(mT)TbTbμ(b)\sum\limits_{T=1}^{\min(n,m)}S(\left\lfloor\frac{n}{T}\right\rfloor)S(\left\lfloor\frac{m}{T}\right\rfloor)T\sum\limits_{b|T}b\mu(b)

f(T)=bTbμ(b)f(T)=\sum\limits_{b|T}b \mu(b),易知 f(n)f(n) 为积性函数,且满足:

f(p)=1p,f(pk)=f(p),pprimesf(p)=1-p,f(p^k)=f(p),p \in primes

求前缀和再数论分块即可。

CODE

P6156 简单题

求:

i=1nj=1n(i+j)kf(gcd(i,j))gcd(i,j)\sum_{i=1}^{n}\sum_{j=1}^{n}(i+j)^k f(\gcd(i,j))\gcd(i,j)

其中 ff 函数定义如下:

如果 kk 有平方因子 f(k)=0f(k)=0,否则 f(k)=1f(k)=1

不难发现 f(n)=μ(n)2f(n)=\mu(n)^{2}

化简式子,有:

i=1nj=1m(i+j)kf(gcd(i,j))gcd(i,j)=i=1nj=1n(i+j)kμ(gcd(i,j))2gcd(i,j)=d=1ni=1nj=1n(i+j)kμ(d)2d[gcd(i,j)=d]=d=1ndk+1μ(d)2i=1ndj=1nd(i+j)kpgcd(i,j)μ(p)=d=1ndk+1μ(d)2i=1ndj=1nd(i+j)kp=1ndμ(p)[pi][pj]=d=1ndk+1μ(d)2p=1ndμ(p)i=1npdj=1npd(ip+jp)k=d=1ndk+1μ(d)2p=1ndμ(p)pki=1npdj=1npd(i+j)k=d=1ndk+1μ(d)2p=1ndμ(p)pkS(ndp)S(n)=i=1nj=1n(i+j)k=T=1nS(nT)dTdk+1μ(d)2μ(Td)(Td)k=T=1nS(nT)dTdμ(d)2μ(Td)Tk\begin{aligned}& \sum_{i=1}^{n}\sum_{j=1}^{m}(i+j)^k f(\gcd(i,j))\gcd(i,j)\\ &=\sum\limits_{i=1}^{n}\sum_{j=1}^{n}(i+j)^{k}\mu(\gcd(i,j))^2\gcd(i,j)\\ &=\sum_{d=1}^{n}\sum_{i=1}^{n}\sum_{j=1}^{n}(i+j)^k\mu(d)^2d[\gcd(i,j)=d]\\ &=\sum_{d=1}^{n}d^{k+1}\mu(d)^2\sum_{i=1}^{\lfloor\frac{n}{d}\rfloor}\sum_{j=1}^{\lfloor\frac{n}{d}\rfloor}(i+j)^{k}\sum_{p|\gcd(i,j)}\mu(p)\\ &=\sum_{d=1}^{n}d^{k+1}\mu(d)^2\sum_{i=1}^{\lfloor\frac{n}{d}\rfloor}\sum_{j=1}^{\lfloor\frac{n}{d}\rfloor}(i+j)^{k}\sum_{p=1}^{\lfloor\frac{n}{d}\rfloor}\mu(p)[p|i][p|j]\\ &=\sum_{d=1}^{n}d^{k+1}\mu(d)^2\sum_{p=1}^{\lfloor\frac{n}{d}\rfloor}\mu(p)\sum_{i=1}^{\lfloor\frac{n}{pd}\rfloor}\sum_{j=1}^{\lfloor\frac{n}{pd}\rfloor}(ip+jp)^{k}\\ &=\sum_{d=1}^{n}d^{k+1}\mu(d)^2\sum_{p=1}^{\lfloor\frac{n}{d}\rfloor}\mu(p)p^{k}\sum_{i=1}^{\lfloor\frac{n}{pd}\rfloor}\sum_{j=1}^{\lfloor\frac{n}{pd}\rfloor}(i+j)^{k}\\ &=\sum_{d=1}^{n}d^{k+1}\mu(d)^2\sum_{p=1}^{\lfloor\frac{n}{d}\rfloor}\mu(p)p^{k}\operatorname{S}(\lfloor\frac{n}{dp}\rfloor) & S(n)=\sum_{i=1}^{n}\sum_{j=1}^{n}(i+j)^k\\ &=\sum_{T=1}^{n}\operatorname{S}(\lfloor\frac{n}{T}\rfloor)\sum_{d|T}d^{k+1}\mu(d)^2\mu(\frac{T}{d})(\frac{T}{d})^{k}\\ &=\sum_{T=1}^{n}\operatorname{S}(\lfloor\frac{n}{T}\rfloor)\sum_{d|T}d\mu(d)^2\mu(\frac{T}{d})T^k \end{aligned}

f(n)=dndμ(d)2μ(nd)f(n)=\sum\limits_{d|n}d \mu(d)^2 \mu(\frac{n}{d})

这显然是积性函数,考虑线性筛。

再看 S(n)\operatorname S(n),设 f(n)=i=1nik\operatorname f(n)=\sum\limits_{i=1}^{n}i^kg(n)=i=1nf(i)\operatorname g(n)=\sum\limits_{i=1}^{n}\operatorname f(i),不难发现:

S(n)=i=n+12nf(i)i=1nf(i)=g(2×n)2×g(n)\operatorname S(n)=\sum\limits_{i=n+1}^{2n}\operatorname f(i)-\sum\limits_{i=1}^{n}\operatorname f(i)=\operatorname g(2\times n)-2\times \operatorname g(n)

预处理即可。

修改一下可过 加强版

P6156 简单题 CODE

P6222 「P6156 简单题」加强版 CODE

P6384 『MdOI R2』Quo Vadis

给定一个 无限大 的矩阵 AA,其中 Ai,j=ijgcd(i,j)A_{i,j}=ij\gcd(i,j)

接下来有 mm 个操作,每行 1133 个整数,意义如下:

  • 11:对矩阵 AA 进行高斯消元,使之成为一个上三角矩阵。(注意:这里,高斯消元中只允许将一行的某一个倍数加到另一行上,不允许交换任意两行,不允许将某行乘上一个倍数,保证这样之后仍然可以得到上三角矩阵,并且保证消元之后的矩阵的每个元素均为非负整数。)
  • 2 x y2\ x\ y:求出当前矩阵的 Ax,yA_{x,y}
  • 3 x3\ x:求出 i=1xj=1xAi,j\sum\limits_{i=1}^{x}\sum\limits_{j=1}^{x}A_{i,j}
  • 4 x4\ x:设 BB 是一个 xx 阶矩阵,其中 Bi,j=Ai,jB_{i,j}=A_{i,j},你需要求出 detB\det B

上述所有答案对 998244353998244353 取模

首先,对于矩阵 AA 满足 Ai,j=ijgcd(i,j)A_{i,j}=i j \gcd(i,j),在进行高斯消元后,有:

Ai,j={ijφ(i)ij0ijA'_{i,j}=\begin{cases}i j \varphi(i) && i \mid j \\0 && i \nmid j\end{cases}

对于矩阵 BB,满足 Bi,j=gcd(i,j)B_{i,j}=\gcd(i,j),在进行高斯消元后,有:

Bi,j={φ(i)ij0ijB'_{i,j}=\begin{cases}\varphi(i) && i \mid j\\0 && i \nmid j\end{cases}

那么,对于 11 操作前的 22 操作答案为 ijgcd(i,j)i j \gcd(i,j),对于 11 操作后的 22 操作答案为 ijφ(i)i j \varphi(i)

再看 11 操作前的 33 操作,答案为:

i=1nj=1nijgcd(i,j)=d=1ndi=1nj=1nij[gcd(i,j)=1]=d=1nd3i=1ndj=1ndij[gcd(i,j)=1]=d=1nd3i=1ndj=1ndijpgcd(i,j)μ(p)=d=1nd3p=1ndμ(p)i=1ndj=1ndij=d=1nd3p=1ndp2μ(p)i=1npdj=1npdij=d=1nd3p=1ndp2μ(p)(i=1npdi)2d=1ndp=1nd(pd)2μ(p)(i=1npdi)2\sum\limits_{i=1}^{n}\sum\limits_{j=1}^{n}i j \gcd(i,j)\\ =\sum\limits_{d=1}^{n}d\sum\limits_{i=1}^{n}\sum\limits_{j=1}^{n}i j [\gcd(i,j)=1]\\ =\sum\limits_{d=1}^{n}d^3\sum\limits_{i=1}^{\lfloor \frac{n}{d}\rfloor}\sum\limits_{j=1}^{\lfloor \frac{n}{d} \rfloor}i j [\gcd(i,j)=1]\\ =\sum\limits_{d=1}^{n}d^3 \sum\limits_{i=1}^{\lfloor \frac{n}{d}\rfloor}\sum\limits_{j=1}^{\lfloor \frac{n}{d}\rfloor}i j \sum\limits_{p|\gcd(i,j)}\mu(p)\\ =\sum\limits_{d=1}^{n}d^3\sum\limits_{p=1}^{\lfloor\frac{n}{d}\rfloor} \mu(p)\sum\limits_{i=1}^{\lfloor\frac{n}{d}\rfloor}\sum\limits_{j=1}^{\lfloor\frac{n}{d}\rfloor}i j\\ =\sum\limits_{d=1}^{n}d^3\sum\limits_{p=1}^{\lfloor\frac{n}{d}\rfloor}p^2 \mu(p)\sum\limits_{i=1}^{\lfloor\frac{n}{pd}\rfloor}\sum\limits_{j=1}^{\lfloor\frac{n}{pd}\rfloor}i j\\ =\sum\limits_{d=1}^{n}d^3\sum\limits_{p=1}^{\lfloor\frac{n}{d}\rfloor}p^2 \mu(p)\left(\sum\limits_{i=1}^{\lfloor\frac{n}{pd}\rfloor}i\right)^2\\ \sum\limits_{d=1}^{n}d\sum\limits_{p=1}^{\lfloor\frac{n}{d}\rfloor}(pd)^2 \mu(p)\left(\sum\limits_{i=1}^{\lfloor\frac{n}{pd}\rfloor}i\right)^2

f(n)=(i=1ni)2f(n)=\left(\sum\limits_{i=1}^{n}i\right)^2,则有:

d=1ndp=1nd(pd)2μ(p)f(npd)\sum\limits_{d=1}^{n}d\sum\limits_{p=1}^{\lfloor\frac{n}{d}\rfloor}(pd)^2 \mu(p)f(\lfloor\frac{n}{pd}\rfloor)

T=pdT=pd,有:

TnT2f(nT)dTdμ(Td)\sum\limits_{T}^{n}T^2f(\lfloor\frac{n}{T}\rfloor)\sum\limits_{d|T}d \mu(\frac{T}{d})

根据狄利克雷卷积,有:

TnT2f(nT)φ(T)\sum\limits_{T}^{n}T^2f(\lfloor\frac{n}{T}\rfloor)\varphi(T)

数论分块套杜教筛即可。

对于 11 操作后的 33 操作,设 g(n)g(n) 为第 nn 列的和,那么有:

g(n)=ndndφ(d)g(n)=n\sum\limits_{d|n}d\varphi(d)

h(n)=dndφ(d)h(n)=\sum\limits_{d|n}d \varphi(d),显然, h(n)h(n) 是个积性函数,线性筛即可。

答案即为:

i=1ng(i)=i=1n(i×h(i))\sum\limits_{i=1}^{n}g(i)\\ =\sum\limits_{i=1}^{n}\left(i \times h(i)\right)

对于操作 44,行列式即消元后主对角线上元素乘积,所以答案即为:

i=1ni2φ(i)\prod\limits_{i=1}^{n}i^2\varphi(i)

CODE

P7486 「Stoi2031」彩虹

S(a,b)=i=1aj=1blcm(a,b)lcm(a,b)S(a,b)=\prod\limits_{i=1}^{a}\prod\limits_{j=1}^{b}\operatorname{lcm}(a,b)^{\operatorname{lcm}(a,b)}

求:

S(r,r)×S(l1,l1)S(r,l1)×S(l1,r)\frac{S(r,r)\times S(l-1,l-1)}{S(r,l-1)\times S(l-1,r)}

不妨设 aba \leq b

dp=tdp=t,则有:

S(a,b)=i=1aj=1blcm(a,b)lcm(a,b)=i=1aj=1bijgcd(a,b)(ijgcd(a,b))=d=1ai=1aj=1bijd(ijd)[gcd(i,j)=d]=d=1ai=1adj=1bd(ijd)ijd[gcd(i,j)=1]=d=1ai=1adj=1bd(ijd)ijdp=1adμ(p)[pi][pj]=d=1ap=1adi=1ad[pi]j=1bd[pj](ijd)ijdμ(p)=d=1ap=1adi=1adpj=1bdp(ijdp2)ijdp2μ(p)=t=1apti=1atj=1bt(ijtp)ijtpμ(p)\begin{aligned} S(a,b)&=\prod\limits_{i=1}^{a}\prod\limits_{j=1}^{b}\operatorname{lcm}(a,b)^{\operatorname{lcm}(a,b)}\\ &=\prod_{i=1}^{a}\prod_{j=1}^{b}\frac{ij}{\gcd(a,b)}^{(\frac{ij}{\gcd(a,b)})}\\ &=\prod_{d=1}^{a}\prod_{i=1}^{a}\prod_{j=1}^{b}\frac{ij}{d}^{(\frac{ij}{d})[\gcd(i,j)=d]}\\ &=\prod_{d=1}^{a}\prod_{i=1}^{\lfloor\frac{a}{d}\rfloor}\prod_{j=1}^{\lfloor\frac{b}{d}\rfloor}(ijd)^{ijd[\gcd(i,j)=1]}\\ &=\prod_{d=1}^{a}\prod_{i=1}^{\lfloor\frac{a}{d}\rfloor}\prod_{j=1}^{\lfloor\frac{b}{d}\rfloor}(ijd)^{ijd\sum\limits_{p=1}^{\lfloor\frac{a}{d}\rfloor}\mu(p)[p|i][p|j]}\\ &=\prod_{d=1}^{a}\prod_{p=1}^{\lfloor\frac{a}{d}\rfloor}\prod_{i=1}^{\lfloor\frac{a}{d}\rfloor}[p|i]\prod_{j=1}^{\lfloor\frac{b}{d}\rfloor}[p|j](ijd)^{ijd\mu(p)}\\ &=\prod_{d=1}^{a}\prod_{p=1}^{\lfloor\frac{a}{d}\rfloor}\prod_{i=1}^{\lfloor\frac{a}{dp}\rfloor}\prod_{j=1}^{\lfloor\frac{b}{dp}\rfloor}(ijdp^2)^{ijdp^2\mu(p)}\\ &=\prod_{t=1}^{a}\prod_{p|t}\prod_{i=1}^{\lfloor\frac{a}{t}\rfloor}\prod_{j=1}^{\lfloor\frac{b}{t}\rfloor}(ijtp)^{ijtp\mu(p)}\\ \end{aligned}

s(x)=i=1xi=x(x+1)2s(x)=\sum\limits_{i=1}^{x}i=\frac{x(x+1)}{2}f(x)=i=1xiif(x)=\prod\limits_{i=1}^{x}i^i,则有:

i=1nj=1m(ij)ij=f(n)s(m)×f(m)s(n)\prod_{i=1}^{n}\prod_{j=1}^{m}(ij)^{ij}=f(n)^{s(m)}\times f(m)^{s(n)}

令其为 G(n,m)G(n,m)

另有:

i=1nj=1m(tp)ij=(tp)s(n)×S(m)\prod_{i=1}^{n}\prod_{j=1}^{m}(tp)^{ij}=(tp)^{s(n)\times S(m)}

带回原式有:

t=1a(pt(G(at,bt)×(tp)s(at)×s(bt))pμ(p))t\prod_{t=1}^{a}\left( \prod_{p|t}\left( G(\lfloor\frac{a}{t}\rfloor,\lfloor\frac{b}{t}\rfloor) \times (tp)^{s(\lfloor\frac{a}{t}\rfloor)\times s(\lfloor\frac{b}{t}\rfloor)} \right)^{p\mu(p)} \right)^{t}

h(x)=dxdμ(d),y(x)=dxddμ(d)h(x)=\sum\limits_{d|x}d\mu(d),y(x)=\prod\limits_{d|x}d^{d\mu(d)},则有:

t=1aG(at,bt)th(t)×(th(t)×y(t))t×s(at)×s(bt)\prod_{t=1}^{a}G(\lfloor\frac{a}{t}\rfloor,\lfloor\frac{b}{t}\rfloor)^{t \cdot h(t)}\times (t^{h(t)}\times y(t))^{t\times s(\lfloor\frac{a}{t}\rfloor)\times s(\lfloor\frac{b}{t}\rfloor)}

再令 hh(x)=x×h(x),yy(x)=(xh(x)×y(x))xhh(x)=x\times h(x),yy(x)=(x^{h(x)}\times y(x))^{x},可得:

t=1aG(at,bt)hh(t)×yy(t)s(at)×s(bt)\prod_{t=1}^{a}G(\lfloor\frac{a}{t}\rfloor,\lfloor\frac{b}{t}\rfloor)^{hh(t)}\times yy(t)^{s(\lfloor\frac{a}{t}\rfloor)\times s(\lfloor\frac{b}{t}\rfloor)}

最后前缀和 +\text{+} 前缀积 +\text{+} 数论分块即可。

再加一个小优化,设一个阈值 SS,对于 1t<S1 \leq t < S 的直接暴力算,因为这部分 l,rl,r 相差较小。

对于 StnS \leq t \leq n 的,再数论分块算。

CODE

P3704 [SDOI2017]数字表格

求:

i=1nj=1mfgcd(i,j)\prod\limits_{i=1}^{n}\prod\limits_{j=1}^{m}f_{\gcd(i,j)}

其中 ff 表示斐波那契数列。

化简式子,有:

i=1nj=1mfgcd(i,j)=d=1ni=1nj=1nfd[gcd(i,j)=d]=d=1nfdi=1nj=1m[gcd(i,j)=d]=d=1nfdi=1ndj=1md[gcd(i,j)=1]=d=1nfdi=1ndj=1mdpgcd(i,j)μ(p)=d=1nfdi=1ndj=1mdp=1ndμ(p)[pi][pj]=d=1nfdp=1ndμ(p)npdmpd=T=1n(dTfdμ(Td))nTmT\prod\limits_{i=1}^{n}\prod\limits_{j=1}^{m}f_{\gcd(i,j)}\\ =\prod\limits_{d=1}^{n}\prod\limits_{i=1}^{n}\prod_{j=1}^{n}f_d[\gcd(i,j)=d]\\ =\prod\limits_{d=1}^{n}f_{d}^{\sum\limits_{i=1}^{n}\sum\limits_{j=1}^{m}[\gcd(i,j)=d]}\\ =\prod\limits_{d=1}^{n}f_{d}^{\sum\limits_{i=1}^{\lfloor\frac{n}{d}\rfloor}\sum\limits_{j=1}^{\lfloor\frac{m}{d}\rfloor}[\gcd(i,j)=1]}\\ =\prod\limits_{d=1}^{n}f_{d}^{\sum\limits_{i=1}^{\lfloor\frac{n}{d}\rfloor}\sum\limits_{j=1}^{\lfloor\frac{m}{d}\rfloor}\sum\limits_{p|\gcd(i,j)}\mu(p)}\\ =\prod\limits_{d=1}^{n}f_{d}^{\sum\limits_{i=1}^{\lfloor\frac{n}{d}\rfloor}\sum\limits_{j=1}^{\lfloor\frac{m}{d}\rfloor}\sum\limits_{p=1}^{\lfloor\frac{n}{d}\rfloor}\mu(p)[p|i][p|j]}\\ =\prod\limits_{d=1}^{n}f_{d}^{\sum\limits_{p=1}^{\lfloor\frac{n}{d}\rfloor}\mu(p)\lfloor\frac{n}{pd}\rfloor\lfloor\frac{m}{pd}\rfloor}\\ =\prod_{T=1}^{n}\left(\prod\limits_{d|T}f_{d}^{\mu(\frac{T}{d})}\right)^{\lfloor\frac{n}{T}\rfloor\lfloor\frac{m}{T}\rfloor}\\

F(n)=dnfdμ(nd)F(n)=\prod\limits_{d|n}f_d^{\mu(\frac{n}{d})}

则有:

T=1nF(T)nTmT\prod_{T=1}^{n}F(T)^{\lfloor\frac{n}{T}\rfloor\lfloor\frac{m}{T}\rfloor}

线性筛预处理前缀积即可。

CODE

SP26045 GCDMAT2 - GCD OF MATRIX (hard)

最优解,嘿嘿。

求:

i=i1i2j=j1j2gcd(i,j)(mod109+7)\sum_{i=i_1}^{i_2}\sum_{j=j_1}^{j_2}\gcd(i,j) \pmod{10^9+7}

TT 组数据。

其中,T50000,1i2,j2106T \leq 50000,1 \leq i2,j2\leq 10^6

首先设 S(n,m)=i=1nj=1mgcd(i,j)S(n,m)=\sum\limits_{i=1}^{n}\sum\limits_{j=1}^{m}\gcd(i,j)

ans=S(i2,j2)+S(i1,j1)S(i2,j1)S(i1,j2)ans=S(i_2,j_2)+S(i_1,j_1)-S(i_2,j_1)-S(i_1,j_2)

考虑化简 S(n,m)S(n,m),有:

S(n,m)=i=1nj=1mgcd(i,j)=d=1ndi=1nj=1m[gcd(i,j)=d]=d=1ndi=1ndj=1md[gcd(i,j)=1]=d=1ndi=1ndj=1mdpgcd(i,j)μ(p)=d=1ndi=1ndj=1mdp=1ndμ(p)[pi][pj]=d=1ndp=1ndμ(p)i=1ndj=1md[pi][pj]=d=1ndp=1ndμ(p)npdmpd=d=1ndp=1ndμ(p)npdmpd=T=1npTμ(p)TpnTmT设 T=dp=T=1nφ(T)nTmT\large \begin{aligned} S(n,m)&=\sum\limits_{i=1}^{n}\sum\limits_{j=1}^{m}\gcd(i,j)\\ &=\sum_{d=1}^{n}d\sum_{i=1}^{n}\sum_{j=1}^{m}[\gcd(i,j)=d]\\ &=\sum_{d=1}^{n}d\sum_{i=1}^{\lfloor\frac{n}{d}\rfloor}\sum_{j=1}^{\lfloor\frac{m}{d}\rfloor}[\gcd(i,j)=1] \\ &=\sum_{d=1}^{n}d\sum_{i=1}^{\lfloor\frac{n}{d}\rfloor}\sum_{j=1}^{\lfloor\frac{m}{d}\rfloor}\sum_{p|\gcd(i,j)}^{}\mu(p)\\ &=\sum_{d=1}^{n}d\sum_{i=1}^{\lfloor\frac{n}{d}\rfloor}\sum_{j=1}^{\lfloor\frac{m}{d}\rfloor}\sum_{p=1}^{\lfloor\frac{n}{d}\rfloor}\mu(p)[p|i][p|j] \\ &=\sum_{d=1}^{n}d\sum_{p=1}^{\lfloor\frac{n}{d}\rfloor}\mu(p)\sum_{i=1}^{\lfloor\frac{n}{d}\rfloor}\sum_{j=1}^{\lfloor\frac{m}{d}\rfloor}[p|i][p|j] \\ &=\sum_{d=1}^{n}d\sum_{p=1}^{\lfloor\frac{n}{d}\rfloor}\mu(p)\lfloor\frac{n}{pd}\rfloor\lfloor\frac{m}{pd}\rfloor \\ &=\sum_{d=1}^{n}d\sum_{p=1}^{\lfloor\frac{n}{d}\rfloor}\mu(p)\lfloor\frac{n}{pd}\rfloor\lfloor\frac{m}{pd}\rfloor \\ &=\sum_{T=1}^{n}\sum_{p|T}\mu(p)\frac{T}{p}\lfloor\frac{n}{T}\rfloor\lfloor\frac{m}{T}\rfloor & 设\ T=dp\\ &=\sum_{T=1}^{n}\varphi(T)\lfloor\frac{n}{T}\rfloor\lfloor\frac{m}{T}\rfloor \\ \end{aligned}

这是 O(Tn)\mathcal{O}(T\sqrt{n}) 的算法,且常数巨大。

考虑优化,发现:

ans=i=1nφ(i)(i2ii1i)(j2ij1i)n=min(i2,j2)\large \begin{aligned} ans=\sum_{i=1}^{n}\varphi(i)(\lfloor\frac{i_2}{i}\rfloor-\lfloor\frac{i_1}{i}\rfloor)(\lfloor\frac{j_2}{i}\rfloor-\lfloor\frac{j_1}{i}\rfloor)&&n=\min(i_2,j_2) \end{aligned}

但是,还是过不了。

这里有一个好方法:预处理出 1N1\sim N 的倒数,然后把除法改成乘法,优化常数,可过。

但还可以优化。

考虑根号分治。

我们发现这实际上是一个预处理和查询的平衡,因为我们发现,llrr 越大,相同一段长度就越大,暴力的复杂度就相对越劣(意思就是用整除分块处理越快),那么我们可以考虑在 llrr 较小的时候暴力,否则预处理。

详见代码。

CODE

P1587 [NOI2016] 循环之美

x=1ny=1mxy\sum\limits_{x=1}^n\sum\limits_{y=1}^m\frac{x}{y}kk 进制下能表示成循环节从第一位小数开始的无限循环小数或整数的最简分数个数。

先思考怎么转换。

首先肯定满足 gcd(x,y)=1\gcd(x,y)=1

假设 xy\frac{x}{y} 的循环节长度为 ll,根据在 kk 进制下的数乘以 kpk^p 相当于将小数点往后挪 pp 位,那么有:

{xkly}={xy}\{\frac{xk^l}{y}\}=\{\frac{x}{y}\}

转换一下上面那个式子,有:

xklyxkly=xyxyxklxklyy=xxyyxklx(mody)kl1(mody)gcd(k,y)=1\begin{aligned} \frac{xk^l}{y}-\lfloor\frac{xk^l}{y}\rfloor&=\frac{x}{y}-\lfloor\frac{x}{y}\rfloor\\ xk^l-\lfloor\frac{xk^l}{y}\rfloor\cdot y&=x-\lfloor\frac{x}{y}\rfloor\cdot y\\ xk^l &\equiv x \pmod y\\ k^l &\equiv 1 \pmod y\\ \gcd(k,y)&=1 \end{aligned}

那么题意就可以转换为求:

i=1nj=1m[gcd(i,j)=1][gcd(j,k)=1]\sum_{i=1}^{n}\sum_{j=1}^{m}[\gcd(i,j)=1][\gcd(j,k)=1]

先化简原式,有:

i=1nj=1m[gcd(i,j)=1][gcd(j,k)=1]=i=1nj=1m[gcd(j,k)=1]pgcd(i,j)μ(p)=i=1nj=1m[gcd(j,k)=1]p=1min(n,m)μ(p)[pi][pj]=p=1min(n,m)μ(p)i=1nj=1m[pi][pj][gcd(j,k)=1]=p=1min(n,m)μ(p)pinpjm[gcd(j,k)=1]=p=1min(n,m)μ(p)nppjm[gcd(j,k)=1]=p=1min(n,m)μ(p)[gcd(p,k)=1]npp=1mp[gcd(j,k)=1]\begin{aligned} &\sum_{i=1}^{n}\sum_{j=1}^{m}[\gcd(i,j)=1][\gcd(j,k)=1]\\ &=\sum_{i=1}^{n}\sum_{j=1}^{m}[\gcd(j,k)=1]\sum_{p|\gcd(i,j)}\mu(p)\\ &=\sum_{i=1}^{n}\sum_{j=1}^{m}[\gcd(j,k)=1]\sum_{p=1}^{\min(n,m)}\mu(p)[p|i][p|j]\\ &=\sum_{p=1}^{\min(n,m)}\mu(p)\sum_{i=1}^{n}\sum_{j=1}^{m}[p|i][p|j][\gcd(j,k)=1]\\ &=\sum_{p=1}^{\min(n,m)}\mu(p)\sum_{p|i}^{n}\sum_{p|j}^{m}[\gcd(j,k)=1]\\ &=\sum_{p=1}^{\min(n,m)}\mu(p)\lfloor\frac{n}{p}\rfloor\sum_{p|j}^{m}[\gcd(j,k)=1]\\ &=\sum_{p=1}^{\min(n,m)}\mu(p)[\gcd(p,k)=1]\lfloor\frac{n}{p}\rfloor\sum_{p=1}^{\lfloor\frac{m}{p}\rfloor}[\gcd(j,k)=1]\\ \end{aligned}

再设个函数,并化简:

f(n)=i=1n[gcd(i,k)=1]\begin{aligned} f(n)=\sum_{i=1}^{n}[\gcd(i,k)=1] \end{aligned}

思考,当 i>ki>k 时,有 gcd(i,k)=gcd(i+k,k)\gcd(i,k)=\gcd(i+k,k),那么答案肯定是呈现一个长度为 kk 的循环,那么有:

f(n)=f(nmodk)+nkφ(k)\begin{aligned} f(n) &=f(n \bmod k)+\lfloor\frac{n}{k}\rfloor\varphi(k) \end{aligned}

那么原式等于:

p=1min(n,m)npf(mp)μ(p)[gcd(p,k)=1]\sum_{p=1}^{\min(n,m)}\lfloor\frac{n}{p}\rfloor f(\lfloor\frac{m}{p}\rfloor)\mu(p)[\gcd(p,k)=1]

现在已经有整除分块了,然后是处理 i=1nμ(i)[gcd(i,k)=1]\sum\limits_{i=1}^{n}\mu(i)[\gcd(i,k)=1] 前缀和的问题。

法一

设前面那个式子为 s(n,k)s(n,k)

尝试化简 s(n,k)s(n,k),则有:

s(n,k)=i=1nμ(i)[gcd(i,k)=1]=i=1nμ(i)p=1min(n,k)μ(p)[pi][pk]=pkmin(n,k)μ(p)pinμ(i)=pkmin(n,k)μ(p)i=1npμ(ip)=pkmin(n,k)μ(p)2i=1npμ(i)[gcd(i,p)=1]=pkmin(n,k)μ(p)2s(np,p)\begin{aligned} s(n,k)&=\sum_{i=1}^{n}\mu(i)[\gcd(i,k)=1]\\ &=\sum_{i=1}^{n}\mu(i)\sum_{p=1}^{\min(n,k)}\mu(p)[p|i][p|k]\\ &=\sum_{p|k}^{\min(n,k)}\mu(p)\sum_{p|i}^{n}\mu(i)\\ &=\sum_{p|k}^{\min(n,k)}\mu(p)\sum_{i=1}^{\lfloor\frac{n}{p}\rfloor}\mu(ip)\\ &=\sum_{p|k}^{\min(n,k)}\mu(p)^2\sum_{i=1}^{\lfloor\frac{n}{p}\rfloor}\mu(i)[\gcd(i,p)=1]\\ &=\sum_{p|k}^{\min(n,k)}\mu(p)^2s(\lfloor\frac{n}{p}\rfloor,p) \end{aligned}

然后数论分块即可。

法二

这里是设前面那个式子为 s(n)s(n),则有:

s(n)=i=1nμ(i)[gcd(i,k)=1]=i=1n[gcd(i,k)=1]s(ni)i=2n[gcd(i,k)=1]s(ni)\begin{aligned} s(n)&=\sum_{i=1}^{n}\mu(i)[\gcd(i,k)=1]\\ &=\sum_{i=1}^{n}[\gcd(i,k)=1]s(\lfloor\frac{n}{i}\rfloor)-\sum_{i=2}^{n}[\gcd(i,k)=1]s(\lfloor\frac{n}{i}\rfloor) \end{aligned}

先看前面那个:

i=1n[gcd(i,k)=1]s(ni)=i=1n[gcd(i,k)=1]j=1niμ(j)[gcd(j,k)=1]=i=1nj=1niμ(j)[gcd(ij,k)=1]=t=1ndt[gcd(t,k)=1]μ(d)=t=1n[gcd(t,k)=1][t=1]=1\begin{aligned} &\sum_{i=1}^{n}[\gcd(i,k)=1]s(\lfloor\frac{n}{i}\rfloor)\\&=\sum_{i=1}^{n}[\gcd(i,k)=1]\sum_{j=1}^{\lfloor\frac{n}{i}\rfloor}\mu(j)[\gcd(j,k)=1]\\ &=\sum_{i=1}^{n}\sum_{j=1}^{\lfloor\frac{n}{i}\rfloor}\mu(j)[\gcd(ij,k)=1]\\ &=\sum_{t=1}^{n}\sum_{d|t}[\gcd(t,k)=1]\mu(d)\\ &=\sum_{t=1}^{n}[\gcd(t,k)=1][t=1]\\ &=1 \end{aligned}

那么最终有:

s(n)=1i=2n[gcd(i,k)=1]s(ni)s(n)=1-\sum_{i=2}^{n}[\gcd(i,k)=1]s(\lfloor\frac{n}{i}\rfloor)

数论分块即可。

CODE

P3700 [CQOI2017]小Q的表格

有一个表格,满足:

f(a,b)=f(b,a)b×f(a,a+b)=(a+b)×f(a,b)\begin{aligned} &f(a,b)=f(b,a)\\ &b \times f(a,a+b)=(a+b)\times f(a,b) \end{aligned}

且一开始 f(a,b)=a×bf(a,b)=a\times b,然后带上一个单点修改操作。

每当修改了一个格子的数之后,为了让表格继续满足上述两个条件,你还需要把这次修改能够波及到的全部格子里都改为恰当的数。

你还需要随时输出前 kk 行前 kk 列这个有限区域内所有数的和 (mod109+7)\pmod {10^9+7}

考虑从下面那个式子得出一些可以反演的东西,有:

b×f(a,a+b)=(a+b)×f(a,b)ab×f(a,a+b)=a(a+b)×f(a,b)f(a,a+b)a(a+b)=f(a,b)abf(a,b)ab=f(gcd(a,b),gcd(a,b))gcd(a,b)2\begin{aligned} b \times f(a,a+b)&=(a+b)\times f(a,b)\\ ab \times f(a,a+b)&=a(a+b)\times f(a,b)\\ \frac{f(a,a+b)}{a(a+b)}&=\frac{f(a,b)}{ab}\\ \frac{f(a,b)}{ab}&=\frac{f(\gcd(a,b),\gcd(a,b))}{\gcd(a,b)^2} \end{aligned}

gcd(a,b)=d\gcd(a,b)=d,则有:

f(a,b)ab=f(d,d)d2f(a,b)=f(d,d)×abd2\begin{aligned} \frac{f(a,b)}{ab}&=\frac{f(d,d)}{d^2}\\ f(a,b)&=\frac{f(d,d)\times ab}{d^2} \end{aligned}

考虑到这个矩阵要变换,因为修改一个位置 (a,b)(a,b) 的值后有且仅有 gcd(x,y)=d\gcd(x,y)=d(x,y)(x,y) 位置的 ff 值会跟着变化,那么用一个树状数组维护 f(d,d)f(d,d) 即可。

f(d,d)=g(d)f(d,d)=g(d),再考虑答案:

ans=d=1ng(d)i=1nj=1nijgcd(i,j)2[gcd(i,j)=d]=d=1ng(d)i=1ndj=1ndij[gcd(i,j)=1]=d=1ng(d)i=1ndj=1ndijpgcd(i,j)μ(p)=d=1ng(d)p=1ndμ(p)i=1ndi[pi]j=1ndj[pj]=d=1ng(d)p=1ndμ(p)p2(i=1ndpi)2=d=1ng(d)p=1ndμ(p)p2S(ndp)2\begin{aligned} ans&=\sum_{d=1}^{n}g(d)\sum_{i=1}^{n}\sum_{j=1}^{n}\frac{ij}{\gcd(i,j)^2}[\gcd(i,j)=d]\\ &=\sum_{d=1}^{n}g(d)\sum_{i=1}^{\lfloor\frac{n}{d}\rfloor}\sum_{j=1}^{\lfloor\frac{n}{d}\rfloor}ij[\gcd(i,j)=1]\\ &=\sum_{d=1}^{n}g(d)\sum_{i=1}^{\lfloor\frac{n}{d}\rfloor}\sum_{j=1}^{\lfloor\frac{n}{d}\rfloor}ij\sum_{p|\gcd(i,j)}\mu(p)\\ &=\sum_{d=1}^{n}g(d)\sum_{p=1}^{\lfloor\frac{n}{d}\rfloor}\mu(p) \sum_{i=1}^{\lfloor\frac{n}{d}\rfloor}i[p|i]\sum_{j=1}^{\lfloor\frac{n}{d}\rfloor}j[p|j]\\ &=\sum_{d=1}^{n}g(d)\sum_{p=1}^{\lfloor\frac{n}{d}\rfloor}\mu(p)p^2\left(\sum_{i=1}^{\lfloor\frac{\lfloor\frac{n}{d}\rfloor}{p}\rfloor}i\right)^2\\ &=\sum_{d=1}^{n}g(d)\sum_{p=1}^{\lfloor\frac{n}{d}\rfloor}\mu(p)p^2S(\lfloor\frac{\lfloor\frac{n}{d}\rfloor}{p}\rfloor) ^2 \end{aligned}

G(n)=i=1ni2μ(i)S(ni)2G(n)=\sum\limits_{i=1}^{n}i^2\mu(i)S(\lfloor\frac{n}{i}\rfloor)^2,则原式等于:

d=1ng(d)G(nd)\sum_{d=1}^{n}g(d)G(\lfloor\frac{n}{d}\rfloor)

根据 nin1i=[in]\lfloor\frac{n}{i}\rfloor-\lfloor\frac{n-1}{i}\rfloor=[i|n],有:

G(n)G(n1)=ini2μ(i)(S(ni)2S(ni1)2=ini2μ(i)(ni)3=n2inμ(i)ni=n2φ(n)\begin{aligned} G(n)-G(n-1)&=\sum_{i|n}i^2\mu(i)(S(\lfloor\frac{n}{i}\rfloor)^2-S(\lfloor\frac{n}{i}\rfloor-1)^2\\ &=\sum_{i|n}i^2\mu(i)(\frac{n}{i})^3\\ &=n^2\sum_{i|n}\mu(i)\frac{n}{i}\\ &=n^2\varphi(n) \end{aligned}

那么有:

G(n)=i=1ni2φ(i)G(n)=\sum_{i=1}^{n}i^2\varphi(i)

那么原式等于:

d=1ng(d)i=1ndi2φ(i)\sum_{d=1}^{n}g(d)\sum_{i=1}^{\lfloor\frac{n}{d}\rfloor}i^2\varphi(i)

线性筛,维护前缀和,再数论分块即可。

CODDE

P4240 毒瘤之神的考验

求:

i=1nj=1mφ(ij)\sum_{i=1}^{n}\sum_{j=1}^{m}\varphi(ij)

先要考虑怎么把 φ\varphi 转成带有 gcd\gcdlcm\operatorname{lcm} 的形式。

性质:φ(ij)=φ(i)φ(j)gcd(i,j)φ(gcd(i,j))\varphi(ij)=\frac{\varphi(i)\varphi(j)\gcd(i,j)}{\varphi(\gcd(i,j))}

证明:

φ(i)φ(j)=ipip1pjpjp1ppprimes=ijpijp1ppgcd(i,j)p1p\begin{aligned} \varphi(i)\varphi(j)&=i\prod_{p|i}\frac{p-1}{p}j\prod_{p|j}\frac{p-1}{p} &p\in primes\\ &=ij\prod_{p|ij}\frac{p-1}{p}\prod_{p|\gcd(i,j)}\frac{p-1}{p} \end{aligned}

所以有:

φ(i)φ(j)gcd(i,j)=ijpijp1pgcd(i,j)pgcd(i,j)p1p=φ(ij)φ(gcd(i,j))\begin{aligned} \varphi(i)\varphi(j)\gcd(i,j)&=ij\prod_{p|ij}\frac{p-1}{p}\gcd(i,j)\prod_{p|\gcd(i,j)}\frac{p-1}{p}\\ &=\varphi(ij)\varphi(\gcd(i,j)) \end{aligned}

化简式子,有:

i=1nj=1mφ(ij)=i=1nj=1mφ(i)φ(j)gcd(i,j)φ(gcd(i,j))=d=1ndφ(d)i=1nj=1mφ(i)φ(j)[gcd(i,j)=d]=d=1ndφ(d)i=1ndj=1mdφ(id)φ(jd)[gcd(i,j)=1]=d=1ndφ(d)p=1ndμ(p)i=1ndφ(id)[pi]j=1mdφ(jd)[pj]=d=1ndφ(d)p=1ndμ(p)i=1nkdφ(ikd)j=1mkdφ(jkd)=T=1n(dTdφ(d)μ(Tp))(i=1nTφ(iT))(j=1mTφ(jT))设 T=dp\begin{aligned} &\sum_{i=1}^{n}\sum_{j=1}^{m}\varphi(ij)\\ &=\sum_{i=1}^{n}\sum_{j=1}^{m}\frac{\varphi(i)\varphi(j)\gcd(i,j)}{\varphi(\gcd(i,j))}\\ &=\sum_{d=1}^{n}\frac{d}{\varphi(d)}\sum_{i=1}^{n}\sum_{j=1}^{m}\varphi(i)\varphi(j)[gcd(i,j)=d]\\ &=\sum_{d=1}^{n}\frac{d}{\varphi(d)}\sum_{i=1}^{\lfloor\frac{n}{d}\rfloor}\sum_{j=1}^{\lfloor\frac{m}{d}\rfloor}\varphi(id)\varphi(jd)[gcd(i,j)=1]\\ &= \sum_{d=1}^{n}\frac{d}{\varphi(d)}\sum_{p=1}^{\lfloor\frac{n}{d}\rfloor}\mu(p)\sum_{i=1}^{\lfloor\frac{n}{d}\rfloor}\varphi(id)[p|i]\sum_{j=1}^{\lfloor\frac{m}{d}\rfloor}\varphi(jd)[p|j]\\ &=\sum_{d=1}^{n}\frac{d}{\varphi(d)}\sum_{p=1}^{\lfloor\frac{n}{d}\rfloor}\mu(p)\sum_{i=1}^{\lfloor\frac{n}{kd}\rfloor}\varphi(ikd)\sum_{j=1}^{\lfloor\frac{m}{kd}\rfloor}\varphi(jkd)\\ &=\sum_{T=1}^{n}\left(\sum_{d|T}\frac{d}{\varphi(d)}\mu(\frac{T}{p})\right)\left(\sum_{i=1}^{\lfloor\frac{n}{T}\rfloor}\varphi(iT)\right)\left(\sum_{j=1}^{\lfloor\frac{m}{T}\rfloor}\varphi(jT)\right)& 设 \ T=dp \\ \end{aligned}\\

f(n)=dndφ(d)μ(np)f(n)=\sum\limits_{d|n}\frac{d}{\varphi(d)}\mu(\frac{n}{p}),线性筛预处理即可,O(nlnn)\mathcal{O}(n \ln n)

g(k,n)=i=1nφ(i,k)g(k,n)=\sum\limits_{i=1}^{n}\varphi(i,k),显然 g(k,n)=g(k,n1)+φ(nk)g(k,n)=g(k,n-1)+\varphi(nk)

则原式等于:

T=1nf(T)×g(T,nT)×g(T,mT)\begin{aligned} \sum_{T=1}^{n}f(T)\times g(T,\lfloor\frac{n}{T}\rfloor)\times g(T,\lfloor\frac{m}{T}\rfloor) \end{aligned}

发现整除分块不了,考虑把整个式子设出来,令:

h(a,b,n)=t=1nf(t)×g(t,a)×g(t,b)h(a,b,n)=\sum_{t=1}^{n}f(t)\times g(t,a) \times g(t,b)

容易发现,这其实就是一个整除分块的首尾差分形式:

h(a,b,n)=nl=nrandml=mrh(nr,mr,r)h(nr,mr,l)h(a,b,n)=\sum_{\lfloor\frac{n}{l}\rfloor=\lfloor\frac{n}{r}\rfloor \operatorname{and} \lfloor\frac{m}{l}\rfloor=\lfloor\frac{m}{r}\rfloor}h(\lfloor\frac{n}{r}\rfloor,\lfloor\frac{m}{r}\rfloor,r)-h(\lfloor\frac{n}{r}\rfloor,\lfloor\frac{m}{r}\rfloor,l)

再考虑根号分治,我们设一个阈值 SS,将所有 h(1,1,1)h(S,S,n)h(1,1,1) \sim h(S,S,n)hh 值预处理出来。

预处理式子就是:

h(j,k,i)=h(j,k,i1)+f(i)×g(i,j)×g(i,k)h(j,k,i)=h(j,k,i-1)+f(i)\times g(i,j)\times g(i,k)

对于 nrS\lfloor\frac{n}{r}\rfloor \leq S 可直接查询。

否则,可知 rnSr \leq \lfloor\frac{n}{S}\rfloor,数论分块计算即可。

CODE

P5572 [CmdOI2019]简单的数论题

求:

i=1nj=1mφ(lcm(i,j)gcd(i,j))mod23333\sum_{i=1}^{n}\sum_{j=1}^{m}\varphi(\frac{\operatorname{lcm}(i,j)}{\gcd(i,j)})\bmod 23333

TT 组数据,满足 T3×104,mn5×104T \leq 3 \times 10^4,m \leq n \leq 5 \times 10^4

下面默认 nmn \leq m

先化简原式,有:

i=1nj=1mφ(lcm(i,j)gcd(i,j))=i=1nj=1mφ(i×jgcd(i,j)2)=d=1ni=1nj=1mφ(i×jd2)[gcd(i,j)=d]=d=1ni=1ndj=1mdφ(i×j)[gcd(i,j)=1]=d=1ni=1ndj=1mdφ(i)φ(j)[gcd(i,j)=1]=d=1ni=1ndj=1mdφ(i)φ(j)pgcd(i,j)μ(p)=d=1np=1ndμ(p)i=1ndj=1mdφ(i)φ(j)[pi][pj]=d=1np=1ndμ(p)i=1npdφ(ip)j=1mpdφ(jp)=T=1npTμ(p)i=1nTφ(ip)j=1mTφ(jp)\begin{aligned} \sum_{i=1}^{n}\sum_{j=1}^{m}\varphi(\frac{\operatorname{lcm}(i,j)}{\gcd(i,j)})&=\sum_{i=1}^{n}\sum_{j=1}^{m}\varphi(\frac{i \times j}{\gcd(i,j)^2})\\ &=\sum_{d=1}^{n}\sum_{i=1}^{n}\sum_{j=1}^{m}\varphi(\frac{i \times j}{d^2})[\gcd(i,j)=d]\\ &=\sum_{d=1}^{n}\sum_{i=1}^{\lfloor\frac{n}{d}\rfloor}\sum_{j=1}^{\lfloor\frac{m}{d}\rfloor}\varphi(i\times j)[\gcd(i,j)=1]\\ &=\sum_{d=1}^{n}\sum_{i=1}^{\lfloor\frac{n}{d}\rfloor}\sum_{j=1}^{\lfloor\frac{m}{d}\rfloor}\varphi(i)\varphi(j)[\gcd(i,j)=1]\\ &=\sum_{d=1}^{n}\sum_{i=1}^{\lfloor\frac{n}{d}\rfloor}\sum_{j=1}^{\lfloor\frac{m}{d}\rfloor}\varphi(i)\varphi(j)\sum_{p|\gcd(i,j)}\mu(p)\\ &=\sum_{d=1}^{n}\sum_{p=1}^{\lfloor\frac{n}{d}\rfloor}\mu(p) \sum_{i=1}^{\lfloor\frac{n}{d}\rfloor}\sum_{j=1}^{\lfloor\frac{m}{d}\rfloor}\varphi(i)\varphi(j)[p|i][p|j]\\ &=\sum_{d=1}^{n}\sum_{p=1}^{\lfloor\frac{n}{d}\rfloor}\mu(p) \sum_{i=1}^{\lfloor\frac{n}{pd}\rfloor}\varphi(ip)\sum_{j=1}^{\lfloor\frac{m}{pd}\rfloor}\varphi(jp)\\ &=\sum_{T=1}^{n}\sum_{p|T}\mu(p)\sum_{i=1}^{\lfloor\frac{n}{T}\rfloor}\varphi(ip)\sum_{j=1}^{\lfloor\frac{m}{T}\rfloor}\varphi(jp) \end{aligned}

设:

G(x,y)=i=1xφ(iy)G(x,y)=\sum_{i=1}^{x}\varphi(iy)

暴力预处理即可。

那么原式等于:

T=1npTμ(p)G(nT,p)G(mT,p)\sum_{T=1}^{n}\sum_{p|T}\mu(p)G(\lfloor\frac{n}{T}\rfloor,p)G(\lfloor\frac{m}{T}\rfloor,p)

再设:

H(x,y,z)=i=1zpiμ(p)G(x,p)g(y,p)H(x,y,z)=\sum_{i=1}^{z}\sum_{p|i}\mu(p)G(x,p)g(y,p)

然后跟 P4240 毒瘤之神的考验 差不多,将答案表示为关于 HH 的差分加下取整的形式。

再考虑根号分治,我们设一个阈值,将所有范围内的 HH 值递推预处理出来。

后面的再数论分块算。

CODE

P5518 [MtOI2019]幽灵乐团 / 莫比乌斯反演基础练习题

关于本题的一种特别简便的做法 「题解」Luogu P5518 [MtOI2019]幽灵乐团 / 莫比乌斯反演基础练习题

求:

i=1Aj=1Bk=1C(lcm(i,j)gcd(j,k))f(type)\prod\limits_{i=1}^{A}\prod\limits_{j=1}^{B}\prod\limits_{k=1}^{C}\left(\frac{\operatorname{lcm}(i,j)}{\gcd(j,k)}\right)^{f(type)}

其中 f(type)f(type) 的取值如下:

f(type)={1type=0i×j×ktype=1gcd(i,j,k)type=2f(type) = \begin{cases} 1 &type = 0\\ i\times j\times k &type = 1\\ \gcd(i,j,k) &type = 2 \end{cases}
分析

显然,原式等于:

i=1Aj=1Bk=1C(i×jgcd(i,j)×gcd(i,k))f(type)\prod_{i=1}^{A}\prod_{j=1}^{B}\prod_{k=1}^{C}\left(\dfrac{i\times j }{\gcd(i,j)\times \gcd(i,k)}\right)^{f(type)}

发现每一项仅与两个变量有关,设:

f1(a,b,c)=i=1aj=1bk=1cif(type)f2(a,b,c)=i=1aj=1bk=1cgcd(i,j)f(type)\begin{aligned} f_1(a,b,c) &= \prod_{i=1}^{a}\prod_{j=1}^{b}\prod_{k=1}^{c} i^{f(type)}\\ f_2(a,b,c) &= \prod_{i=1}^{a}\prod_{j=1}^{b}\prod_{k=1}^{c} \gcd(i,j)^{f(type)} \end{aligned}

发现 \prod 可以随意交换,则原式等价于:

f1(a,b,c)×f1(b,a,c)f2(a,b,c)×f2(a,c,b)\dfrac{f_1(a,b,c)\times f_1(b,a,c)}{f_2(a,b,c)\times f_2(a,c,b)}

考虑在 typetype 取值不同时,如何快速求得 f1f_1f2f_2

type=0\large{type=0}
f1(a,b,c)=i=1aj=1bk=1cif2(a,b,c)=i=1aj=1bk=1cgcd(i,j)\begin{aligned} f_1(a,b,c) &= \prod_{i=1}^{a}\prod_{j=1}^{b}\prod_{k=1}^{c} i\\ f_2(a,b,c) &= \prod_{i=1}^{a}\prod_{j=1}^{b}\prod_{k=1}^{c} \gcd(i,j) \end{aligned}

对于 f1f_1,显然有:

i=1aj=1bk=1ci=(i=1ai)b×c\prod_{i=1}^{a}\prod_{j=1}^{b}\prod_{k=1}^{c} i = \left(\prod_{i=1}^{a}i\right)^{b\times c}

预处理阶乘 + 快速幂即可,单次计算时间复杂度 O(logn)O(\log n)

再考虑 f2f_2,显然有:

i=1aj=1bk=1cgcd(i,j)=(i=1aj=1bgcd(i,j))c=(d=1d(i=1aj=1b[gcd(i,j)=d]))c\large \begin{aligned} &\prod_{i=1}^{a}\prod_{j=1}^{b}\prod_{k=1}^{c} \gcd(i,j)\\ =&\left(\prod_{i=1}^{a}\prod_{j=1}^{b}\gcd(i,j)\right)^c\\ =& \left(\prod_{d=1} d^{\left(\sum\limits_{i=1}^{a}\sum\limits_{j=1}^{b}[\gcd(i,j) = d]\right)}\right)^c \end{aligned}

先看指数,有:

i=1aj=1b[gcd(i,j)=d]=i=1adj=1bd[gcd(i,j)=1]=i=1adj=1bdkgcd(i,j)μ(k)=k=1μ(k)akdbkd\begin{aligned} &\sum\limits_{i=1}^{a}\sum\limits_{j=1}^{b}[\gcd(i,j) = d]\\ =& \sum\limits_{i=1}^{\left\lfloor\frac{a}{d}\right\rfloor}\sum\limits_{j=1}^{\left\lfloor\frac{b}{d}\right\rfloor}[\gcd(i,j) = 1]\\ =& \sum\limits_{i=1}^{\left\lfloor\frac{a}{d}\right\rfloor}\sum\limits_{j=1}^{\left\lfloor\frac{b}{d}\right\rfloor}\sum_{k\mid \gcd(i,j)}\mu (k)\\ =& \sum_{k=1}\mu(k)\left\lfloor\dfrac{a}{kd}\right\rfloor\left\lfloor\dfrac{b}{kd}\right\rfloor \end{aligned}

则原式等于:

(d=1d(k=1μ(k)akdbkd))c=(d=1(dk=1μ(k))akdbkd)c=d=1(k=1ndd(μ(k)akdbkd))c\large \begin{aligned} &\left(\prod_{d=1} d^{\left(\sum\limits_{k=1}\mu(k)\left\lfloor\frac{a}{kd}\right\rfloor\left\lfloor\frac{b}{kd}\right\rfloor\right)}\right)^c\\ =& \left(\prod_{d=1} \left(d^{\sum\limits_{k=1}\mu(k)}\right)^{\left\lfloor\frac{a}{kd}\right\rfloor\left\lfloor\frac{b}{kd}\right\rfloor}\right)^c\\ =& \prod_{d=1} \left(\prod_{k=1}^{\left\lfloor\frac{n}{d}\right\rfloor}d^{\left(\mu(k)\left\lfloor\frac{a}{kd}\right\rfloor\left\lfloor\frac{b}{kd}\right\rfloor\right)}\right)^c \end{aligned}

t=kdt=kd,并枚举 tt,有:

t=1n((dtdμ(td))atbt)c\large \prod_{t=1}^{n}\left(\left(\prod_{d|t} d^{\mu{\left(\frac{t}{d}\right)}}\right)^{\left\lfloor\frac{a}{t}\right\rfloor\left\lfloor\frac{b}{t}\right\rfloor}\right)^c

显然,dtdμ(td)\prod\limits_{d|t}d^{\mu\left(\frac{t}{d}\right)} 这块可以预处理。

复杂度 O(nlogn)O(n\log n)

数论分块 +\text{+} 快速幂计算即可,单次时间复杂度 O(nlogn)O(\sqrt n\log n)

type=1\large{type=1}
f1(a,b,c)=i=1aj=1bk=1cii×j×kf2(a,b,c)=i=1aj=1bk=1cgcd(i,j)i×j×k\begin{aligned} f_1(a,b,c) &= \prod_{i=1}^{a}\prod_{j=1}^{b}\prod_{k=1}^{c} i^{i\times j\times k}\\ f_2(a,b,c) &= \prod_{i=1}^{a}\prod_{j=1}^{b}\prod_{k=1}^{c} \gcd(i,j)^{i\times j\times k} \end{aligned}

先考虑 f1f_1,有:

i=1aj=1bk=1cii×j×k=i=1aj=1bi(i×j×k=1ck)=(i=1aii)S(b)×S(c)\large \prod_{i=1}^{a}\prod_{j=1}^{b}\prod_{k=1}^{c} i^{i\times j\times k} = \prod_{i=1}^{a}\prod_{j=1}^{b}i^{\left(i\times j\times \sum\limits_{k = 1}^{c} k\right)}= \left(\prod_{i=1}^{a}i^i\right)^{\operatorname{S}(b)\times \operatorname{S}(c)}

其中 S(n)=i=1n=n×(n+1)2\operatorname{S}(n)=\sum\limits_{i=1}^{n}=\frac{n\times (n+1)}{2},可算 O(1)O(1) 算前缀和然后再用扩展欧拉定理降幂即可。

再考虑 f2f_2,显然有:

i=1aj=1bk=1cgcd(i,j)i×j×k=(i=1aj=1bgcd(i,j)i×j)S(c)\large \begin{aligned} &\prod_{i=1}^{a}\prod_{j=1}^{b}\prod_{k=1}^{c} \gcd(i,j)^{i\times j\times k}\\ =& \left(\prod_{i=1}^a\prod_{j=1}^b\gcd(i,j)^{i\times j}\right)^{\operatorname{S}(c)} \end{aligned}

然后枚举 gcdgcd,原式等于:

(d=1d(i=1aj=1bi×j[gcd(i,j)=d]))S(c)\large \left(\prod_{d=1}d^{\left(\sum\limits_{i=1}^a \sum\limits_{j=1}^b i\times j[\gcd(i,j)=d]\right)}\right)^{\operatorname{S}(c)}

先看指数,有:

i=1aj=1bi×j[gcd(i,j)=d]=d2i=1adj=1bdi×j[gcd(i,j)=1=d2i=1adij=1bdjtgcd(i,j)μ(t)=d2i=1adij=1bdjkgcd(i,j)μ(k)=d2k=1μ(k)i=1adi[ki]j=1bdj[kj]=d2k=1k2μ(k)i=1akdij=1bkdj=d2k=1k2μ(k)S(akd)S(bkd)\large \begin{aligned} &\sum\limits_{i=1}^a \sum\limits_{j=1}^b i\times j[\gcd(i,j)=d]\\ =& d^2 \sum\limits_{i=1}^{\left\lfloor\frac{a}{d}\right\rfloor} \sum\limits_{j=1}^{\left\lfloor\frac{b}{d}\right\rfloor} i\times j[\gcd(i,j)=1\\ =& d^2 \sum\limits_{i=1}^{\left\lfloor\frac{a}{d}\right\rfloor} i \sum\limits_{j=1}^{\left\lfloor\frac{b}{d}\right\rfloor} j\sum\limits_{t|\gcd(i,j)}\mu(t)\\ =& d^2 \sum\limits_{i=1}^{\left\lfloor\frac{a}{d}\right\rfloor} i \sum\limits_{j=1}^{\left\lfloor\frac{b}{d}\right\rfloor} j\sum\limits_{k|\gcd(i,j)}\mu(k)\\ =& d^2 \sum\limits_{k=1}\mu(k)\sum\limits_{i=1}^{\left\lfloor\frac{a}{d}\right\rfloor} i[k|i] \sum\limits_{j=1}^{\left\lfloor\frac{b}{d}\right\rfloor} j[k|j]\\ =& d^2 \sum\limits_{k=1}k^2\mu(k)\sum\limits_{i=1}^{\left\lfloor\frac{a}{kd}\right\rfloor} i\sum\limits_{j=1}^{\left\lfloor\frac{b}{kd}\right\rfloor} j\\ =& d^2\sum\limits_{k=1}k^2\mu(k)\operatorname{S}{\left(\left\lfloor\frac{a}{kd}\right\rfloor\right)} \operatorname{S}{\left(\left\lfloor\frac{b}{kd}\right\rfloor\right)}\\ \end{aligned}

则原式等于:

(d=1d(d2k=1k2μ(k)S(akd)S(bkd)))S(c)\large \left(\prod_{d=1}d^{\left(d^2\sum\limits_{k=1}k^2\mu(k)\operatorname{S}{\left(\left\lfloor\frac{a}{kd}\right\rfloor\right)} \operatorname{S}{\left(\left\lfloor\frac{b}{kd}\right\rfloor\right)}\right)}\right)^{\operatorname{S}(c)}

t=kdt=kd,并枚举 tt,有:

(d=1(k=1ndd(d2k2μ(k)))(S(akd)S(bkd)))S(c)=t=1((dtd(d2(td)2μ(td)))S(at)S(bt))S(c)=t=1((dtd(t2μ(td)))S(at)S(bt))S(c)\large \begin{aligned} &\left(\prod_{d=1}\left(\prod_{k=1}^{\left\lfloor\frac{n}{d}\right\rfloor}d^{\left(d^2 k^2\mu(k)\right)}\right)^{\left(\operatorname{S}{\left(\left\lfloor\frac{a}{kd}\right\rfloor\right)} \operatorname{S}{\left(\left\lfloor\frac{b}{kd}\right\rfloor\right)}\right)}\right)^{\operatorname{S}(c)}\\ =& \prod_{t=1}\left(\left(\prod_{d|t}d^{\left(d^2\left(\frac{t}{d}\right)^2\mu\left(\frac{t}{d}\right)\right)}\right)^{\operatorname{S}{\left(\left\lfloor\frac{a}{t}\right\rfloor\right)} \operatorname{S}{\left(\left\lfloor\frac{b}{t}\right\rfloor\right)}}\right)^{\operatorname{S}(c)}\\ =& \prod_{t=1}\left(\left(\prod_{d|t}d^{\left(t^2\mu\left(\frac{t}{d}\right)\right)}\right)^{\operatorname{S}{\left(\left\lfloor\frac{a}{t}\right\rfloor\right)} \operatorname{S}{\left(\left\lfloor\frac{b}{t}\right\rfloor\right)}}\right)^{\operatorname{S}(c)} \end{aligned}

显然,dtd(t2μ(td))\prod\limits_{d|t}d^{\left(t^2\mu\left(\frac{t}{d}\right)\right)} 这块可以预处理。

复杂度 O(nlog2n)O(n\log^2 n)

数论分块 +\text{+} 快速幂计算即可,单次时间复杂度 O(nlogn)O(\sqrt n\log n)

type=2\large{type=2}
f1(a,b,c)=i=1aj=1bk=1cigcd(i,j,k)f2(a,b,c)=i=1aj=1bk=1cgcd(i,j)gcd(i,j,k)\begin{aligned} f_1(a,b,c) &= \prod_{i=1}^{a}\prod_{j=1}^{b}\prod_{k=1}^{c} i^{\gcd(i,j,k)}\\ f_2(a,b,c) &= \prod_{i=1}^{a}\prod_{j=1}^{b}\prod_{k=1}^{c} \gcd(i,j)^{\gcd(i,j,k)} \end{aligned}

直接考虑原式:

i=1aj=1bk=1c(lcm(i,j)gcd(i,k))gcd(i,j,k)\prod_{i = 1}^a \prod_{j = 1}^b \prod_{k = 1}^c \left(\dfrac{\operatorname{lcm}(i, j)}{\gcd(i, k)} \right)^{\gcd(i, j, k)}

ln\ln 有:

i=1aj=1bk=1cln(lcm(i,j)gcd(i,k))gcd(i,j,k)=d=1min(a,b,c)φ(d)i=1adj=1bdk=1cdln(lcm(id,jd)gcd(id,kd))=d=1min(a,b,c)φ(d)i=1adj=1bdk=1cdln(lcm(i,j)gcd(i,k))\begin{aligned} &\sum_{i = 1}^a \sum_{j = 1}^b \sum_{k = 1}^c \ln\left(\dfrac{\operatorname{lcm}(i, j)}{\gcd(i, k)} \right) \gcd(i, j, k)\\ & = \sum_{d = 1}^{\min(a, b, c)} \varphi(d) \sum_{i = 1}^{\left\lfloor\frac{a}{d}\right\rfloor} \sum_{j = 1}^{\left\lfloor\frac{b}{d}\right\rfloor} \sum_{k = 1}^{\left\lfloor\frac{c}{d}\right\rfloor} \ln\left(\dfrac{\operatorname{lcm}(id, jd)}{\gcd(id, kd)} \right) \\ & = \sum_{d = 1}^{\min(a, b, c)} \varphi(d) \sum_{i = 1}^{\left\lfloor\frac{a}{d}\right\rfloor} \sum_{j = 1}^{\left\lfloor\frac{b}{d}\right\rfloor} \sum_{k = 1}^{\left\lfloor\frac{c}{d}\right\rfloor} \ln\left(\dfrac{\operatorname{lcm}(i, j)}{\gcd(i, k)} \right) \end{aligned}

exp\exp 有:

d=1min(a,b,c)(i=1adj=1bdk=1cdlcm(i,j)gcd(i,k))φ(d)\prod_{d = 1}^{\min(a, b, c)} \left(\prod_{i = 1}^{\left\lfloor\frac{a}{d}\right\rfloor} \prod_{j = 1}^{\left\lfloor\frac{b}{d}\right\rfloor} \prod_{k = 1}^{\left\lfloor\frac{c}{d}\right\rfloor} \dfrac{\operatorname{lcm}(i, j)}{\gcd(i, k)} \right)^{\varphi(d)}

可以发现中间那部分其实就是 type=0type=0 时的答案。

于是可以先对外层整除分块,再对内层整除分块。

CODE

P8570 [JRKSJ R6] 牵连的世界

link

番外

一些根号分治和优化除法。

参考资料

感谢 mango09 神仙的帮助。

posted @ 2021-12-25 10:02  蒟蒻orz  阅读(4)  评论(0编辑  收藏  举报  来源