浅谈莫反

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

题单

莫比乌斯反演

对于一些函数 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,c∈Z,⌊abc⌋=⌊⌊ab⌋c⌋\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(0≤r<1)\dfrac{a}{b} = \left\lfloor{\dfrac{a}{b}}\right\rfloor + r(0\le r < 1) ⌊abc⌋=⌊ab×1c⌋=⌊1c×(⌊ab⌋+r)⌋=⌊⌊ab⌋c+rc⌋=⌊⌊ab⌋c⌋\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=1n⌊ni⌋\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 的值是一样的,而且它们呈一个块状分布。

我们发现对于每一个值相同的块,它的最后一个数就是n⌊ni⌋\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=1nk mod i\sum\limits_{i=1}^{n}k \bmod i

显然,上式等于:

∑i=1nk−i⋅⌊ki⌋\sum\limits_{i=1}^{n}k - i \cdot \left\lfloor\frac{k}{i}\right\rfloor

可以转化为:

n⋅k−∑i=1ni⋅⌊ki⌋n \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=1l−1f(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] 的整数 kk,kk 作为因数在 [1,r][1,r] 中出现了 ⌊rk⌋\left\lfloor\frac{r}{k}\right\rfloor 次,显然对答案的贡献为 ⌊rk⌋\left\lfloor\frac{r}{k}\right\rfloor。

则:

ans=∑i=1r⌊ri⌋−∑j=1l−1⌊l−1j⌋ans=\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=1n∑j=1m(n mod i)×(m mod j),i≠j\sum\limits_{i=1}^{n}\sum\limits_{j=1}^{m}(n \bmod i) \times (m \bmod j),i \ne j

膜 1994041719940417 的值。

首先,不妨设 n≤mn \leq m。

显然,上式可简化为:

∑i=1n∑j=1m(n mod i)×(m mod j)−∑i=1n(n mod i)×(m mod i)\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(n mod i)×∑j=1m(m mod j)−∑i=1n(n mod i)(m mod i)\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)

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

∑i=1n(n−i×⌊ni⌋)×∑j=1m(m−j×⌊mj⌋)−∑i=1n(n−i×⌊ni⌋)×(m−i×⌊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)

将括号拆开,可以得到:

(n2−∑i=1ni×⌊ni⌋)×(m2−∑j=1mj×⌊mj⌋)−∑i=1n(nm−mi×⌊ni⌋−ni×⌊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)=∑d∣xf(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^k, id1(n)id^1(n) 通常简记为 id(n)id(n)。
  • 常数函数 1(n)=11(n)=1。
  • 因数个数 d⁡(n)=∑d∣n1\operatorname{d}(n) = \sum\limits_{d\mid n} 1。
  • 除数函数 σk(n)=∑d∣ndk\sigma_{k}(n) = \sum\limits_{d\mid n} d^k。 k=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 的狄利克雷卷积为:

(f∗g)(n)=∑d∣nf(d)g(nd)\large(f\ast g) (n) = \sum_{d\mid n} f(d)g\left(\dfrac{n}{d}\right)

性质

  1. 显然满足交换律,结合律,分配律。
    • f∗g=g∗ff \ast g = g \ast f
    • (f∗g)∗h=f∗(g∗h)(f \ast g) \ast h = f\ast (g\ast h)
    • f∗(g+h)=f∗g+f∗hf\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 为积性函数,则 f∗gf \ast g 为积性函数。
  4. ϵ=μ∗1=∑d∣nμ(d)\epsilon = \mu \ast 1=\sum\limits_{d\mid n} \mu (d)。
  5. (Id⁡k∗1)(n)=∑d∣nIdk⁡(d)=∑d∣ndk=σ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) 为积性函数。

1≤n≤2311\le n\le2^{31}。

算法解决

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

考虑推数学式子。

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

有:

∑i=1nh(i)=∑i=1n∑d∣if(id)g(d)=∑d=1ng(d)∑i=1⌊nd⌋f(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,f∗g=ϵ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,f∗g=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):

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

结论

[gcd⁡(i,j)=1]=∑d∣gcd⁡(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=(f∗1)∗μf=f \ast \epsilon = f\ast(\mu \ast 1)=f \ast \mu \ast 1=(f \ast 1) \ast \mu。

形式一

如果有:

f(n)=∑d∣ng(d)f(n)=\sum\limits_{d|n}g(d)

那么有:

g(n)=∑d∣nμ(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)=∑n∣dg(d)f(n)=\sum\limits_{n|d}g(d)

那么有:

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

常见的几种反演形式

以下默认 n≤mn \le m。

形式一

∑i=1n∑j=1m[gcd⁡(i,j)=1]=∑i=1n∑j=1m∑x∣i∑x∣jμ(x)=∑x=1n∑i=1n∑j=1m[x∣i][x∣j]μ(x)=∑x=1nμ(x)⌊nx⌋⌊mx⌋\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=1n∑j=1mgcd⁡(i,j)=∑i=1n∑j=1m∑x∣i∑x∣jφ(x)=∑x=1nφ(x)∑i=1n∑j=1m[x∣i][x∣j]=∑x=1nφ(x)⌊nx⌋⌊mx⌋\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=1n∑j=1mf(gcd⁡(i,j))=∑d=1nf(d)∑i=1n∑j=1m[gcd⁡(i,j)=d]=∑d=1nf(d)∑i=1⌊nd⌋∑j=1⌊md⌋[gcd⁡(i,j)=1]=∑d=1nf(d)∑k=1⌊nd⌋μ(k)⌊ndk⌋⌊mdk⌋\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=1n⌊nT⌋⌊mT⌋∑d∣Tf(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=1n∑p=1⌊nd⌋p=∑T=1n∑p∣Tp\sum_{d=1}^{n}\sum_{p=1}^{\lfloor\frac{n}{d}\rfloor}p=\sum_{T=1}^{n}\sum_{p|T}p

有:

∑d=1n∑p=1⌊nd⌋p=∑d=1n∑p=1npd[d∣p]=∑T=1n∑p∣Tp\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=1n∑p=1⌊nd⌋pf(d)=∑T=1n∑p∣Tpf(Td)=∑T=1n∑d∣TTdf(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

求:

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

化简得:

∑p∈primes∑x=1⌊np⌋∑y=1⌊mp⌋[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]

根据:

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

有:

∑p∈primes∑x=1⌊np⌋∑y=1⌊mp⌋∑k∣i,k∣jμ(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,有:

∑p∈primes∑k=1min⁡(⌊np⌋,⌊mp⌋)∑x=1⌊np⌋∑y=1⌊mp⌋μ(k)[k∣i][k∣j]\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]

那么就有:

∑p∈primes∑k=1min⁡(⌊np⌋,⌊mp⌋)⌊npk⌋⌊mpk⌋μ(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)⌊nT⌋⌊mT⌋∑p∈primes,p∣Tμ(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=i1i2∑j=j1j2gcd⁡(i,j)\sum\limits_{i=i_1}^{i_2}\sum\limits_{j=j_1}^{j_2}\gcd(i,j)

考虑容斥,设 S(n,m)=∑i=1n∑j=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−1,j2)−S(i2,j1−1)+S(i1−1,j1−1)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=1n∑j=1mgcd⁡(i,j)=∑d=1nd×∑i=1n∑j=1m[gcd⁡(i,j)=d]=∑d=1nd×∑i=1⌊nd⌋∑j=1⌊md⌋[gcd⁡(i,j)=1]=∑d=1nd×∑i=1⌊nd⌋∑j=1⌊md⌋∑p∣gcd⁡(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=1⌊nd⌋∑i=1⌊npd⌋∑j=1⌊mpd⌋∑p∣gcd⁡(i,j)μ(p)=∑d=1n∑p=1⌊nd⌋⌊npd⌋⌊mpd⌋d×μ(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=1n∑p=1⌊nd⌋⌊nT⌋⌊mT⌋Tp×μ(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=1n∑p∣T⌊nT⌋⌊mT⌋Tp×μ(p)=∑T=1n⌊nT⌋⌊mT⌋∑p∣TTp×μ(p)=∑T=1n⌊nT⌋⌊mT⌋φ(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=1n∑j=1md(i⋅j)\sum\limits_{i=1}^{n}\sum\limits_{j=1}^{m}d(i \cdot j)

其中,有:

d(n)=∑i∣n1d(n)=\sum\limits_{i|n}1

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

d(i⋅j)=∑x∣i∑y∣j[gcd⁡(x,y)=1]d(i \cdot j)=\sum\limits_{x|i}\sum\limits_{y|j}[\gcd(x,y)=1]

因此所求为:

∑i=1n∑j=1m∑x∣i∑y∣j[gcd⁡(x,y)=1]=∑x=1n∑y=1m⌊nx⌋⌊my⌋[gcd⁡(x,y)=1]=∑x=1n∑y=1m⌊nx⌋⌊my⌋∑p∣gcd⁡(x,y)μ(p)=∑x=1n∑y=1m⌊nx⌋⌊my⌋∑p=1n[p∣x][p∣y]μ(p)=∑p=1nμ(p)∑i=1⌊np⌋∑j=1⌊mp⌋⌊nip⌋⌊mjp⌋=∑p=1nμ(p)∑i=1⌊np⌋⌊nip⌋∑j=1⌊mp⌋⌊mjp⌋\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=1n∏j=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}

1≤n≤1061 \leq n \leq 10^6。

化简式子,有:

∏i=1n∏j=1nlcm⁡(i,j)gcd⁡(i,j)=∏i=1n∏j=1ni×jgcd⁡(i,j)2=∏i=1n∏j=1ni×j(∏i=1n∏j=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=1n∏j=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=1n∏j=1ngcd(i,j)=∏d=1n∏i=1n∏j=1n[gcd(i,j)==d]gcd⁡(i,j)=∏d=1nd∑i=1n∑j=1n[gcd(i,j)==d]==∏d=1nd∑i=1⌊nd⌋∑j=1⌊nd⌋[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=1⌊nd⌋∑j=1⌊nd⌋[gcd(i,j)==1]=(∑i=1⌊nd⌋(2×∑j=1i[gcd⁡(i,j)=1]))−1=2×(∑i=1⌊nd⌋φ(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=1⌊nd⌋φ(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)=m−1\varphi(m)=m-1。

所以原式可进一步化为:

(n!)2n(∏d=1nd(2×∑i=1⌊nd⌋φ(i))−1 mod (mod−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}\bmod (mod-1)\right)^2} \pmod{mod}

CODE

P6055 [RC-02] GCD

求:

∑i=1n∑j=1n∑p=1⌊nj⌋∑q=1⌊nj⌋[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]

1≤n≤2×1091 \leq n \leq 2\times 10^9。

化简式子,有:

∑i=1n∑j=1n∑p=1⌊nj⌋∑q=1⌊nj⌋[gcd⁡(i,j)=1][gcd⁡(p,q)=1]=∑i=1n∑j=1n∑p=1n∑q=1n[gcd⁡(i,j)=1][gcd⁡(p,q)=j]=∑i=1n∑p=1n∑q=1n[gcd⁡(i,p,q)=1]=∑i=1n∑p=1n∑q=1n∑d∣gcd⁡(i,p,q)μ(d)=∑d=1n∑i=1n∑p=1n∑q=1n[d∣i][d∣p][d∣q]μ(d)=∑d=1n∑i=1⌊nd⌋∑p=1⌊nd⌋∑q=1⌊nd⌋μ(d)=∑d=1nμ(d)⌊nd⌋3\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=1n∑j=1nijgcd⁡(i,j)\sum\limits_{i=1}^{n}\sum_{j=1}^{n}ij\gcd(i,j)

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

∑i=1n∑j=1nijgcd⁡(i,j)=∑d=1nd3∑i=1n∑j=1mid⋅jd[gcd⁡(i,j)=d]=∑d=1nd3∑i=1⌊nd⌋∑j=1⌊nd⌋i⋅j[gcd⁡(i,j)=1]=∑d=1nd3∑i=1⌊nd⌋∑j=1⌊nd⌋i⋅j∑p=1⌊nd⌋μ(p)[p∣i][p∣j]=∑d=1nd3∑i=1⌊nd⌋∑j=1⌊nd⌋i⋅j∑p=1⌊nd⌋μ(p)[p∣i][p∣j]=∑d=1nd3∑p=1⌊nd⌋μ(p)∑i=1⌊nd⌋i[p∣i]∑j=1⌊nd⌋j[p∣j]=∑d=1nd3∑p=1⌊nd⌋μ(p)∑i=1⌊nd⌋i[p∣i]∑j=1⌊nd⌋j[p∣j]=∑d=1nd3∑p=1⌊nd⌋μ(p)(∑i=1⌊nd⌋i[p∣i])2=∑d=1nd3∑p=1⌊nd⌋μ(p)p2s(⌊npd⌋)2s(n)=∑i=1ni=i×(i−1)2=∑T=1ns(⌊nT⌋)2∑p∣Tμ(p)(Tp)3p2=∑T=1ns(⌊nT⌋)2T2∑p∣Tμ(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=LR∑a2=LR⋯∑an=LR[gcd⁡i=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]

满足 1≤n,K≤109,1≤L≤R≤109,R−L≤1051\leq n,K\leq 10^9,1 \leq L \leq R\leq 10^9,R-L\leq 10^5。

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

∑a1=lr∑a2=lr⋯∑an=lr[gcd⁡i=1n(ai)=1]=∑a1=lr∑a2=lr⋯∑an=lr∑p∣gcd⁡i=1n(ai)μ(p)=∑p=1rμ(p)(⌊rp⌋−⌊l−1p⌋)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=1n∑j=1mgcd⁡(i,j)k\sum\limits_{i=1}^{n}\sum_{j=1}^{m}\gcd(i,j)^k

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

∑i=1n∑j=1mgcd⁡(i,j)k=∑d=1ndk∑i=1n∑j=1m[gcd⁡(i,j)=d]=∑d=1ndk∑i=1⌊nd⌋∑j=1⌊nd⌋[gcd⁡(i,j)=1]=∑d=1ndk∑i=1⌊nd⌋∑j=1⌊nd⌋∑p=1⌊nd⌋μ(p)[p∣i][p∣j]∑d=1ndk∑p=1⌊nd⌋μ(p)∑i=1⌊nd⌋[p∣i]∑j=1⌊md⌋[p∣j]=∑d=1ndk∑p=1⌊nd⌋μ(p)×⌊ndp⌋⌊mdp⌋=∑T=1n⌊nT⌋⌊mT⌋∑d∣Tdkμ(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)=∑d∣ndkμ(nd)g(n)=\sum\limits_{d|n}d^k\mu(\frac{n}{d}),显然 gg 是个乘性函数,线性筛即可。

CODE

P6825 「EZEC-4」求和

求:

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

先化简原式,有:

∑i=1n∑j=1ngcd⁡(i,j)i+j=∑d=1n∑i=1n∑j=1ndi+j[gcd⁡(i,j)=d]=∑d=1n∑i=1⌊nd⌋∑j=1⌊nd⌋dd⋅(i+j)[gcd⁡(i,j)=1]=∑d=1n∑i=1⌊nd⌋∑j=1⌊nd⌋dd⋅(i+j)∑p∣gcd⁡(i,j)μ(p)=∑d=1n∑p=1⌊nd⌋μ(p)∑i=1⌊nd⌋∑j=1⌊nd⌋dd⋅(i+j)[p∣i][p∣j]=∑d=1n∑p=1⌊nd⌋μ(p)∑i=1⌊npd⌋∑j=1⌊npd⌋ddp⋅(i+j)=∑d=1n∑p=1⌊nd⌋μ(p)∑i=1⌊nT⌋∑j=1⌊nT⌋dT⋅(i+j)T=dp=∑d=1n∑p=1⌊nd⌋μ(p)∑i=1⌊nT⌋(dT)i∑j=1⌊nT⌋(dT)j=∑d=1n∑p=1⌊nd⌋μ(p)(∑i=1⌊nT⌋(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=S⌊n2⌋(1+a⌊n2⌋)+an[2∤n]S_n=S_{\lfloor\frac{n}{2}\rfloor}(1+a^{\lfloor\frac{n}{2}\rfloor})+a^n[2 \nmid n]

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

时间复杂度 O(nlog⁡n)\mathcal O(n \log n)。

CODE

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

求(对 2010100920101009 取模):

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

易得:

∑i=1n∑j=1mi⋅jgcd⁡(i,j)\sum\limits_{i=1}^{n}\sum\limits_{j=1}^{m}\frac{i \cdot j}{\gcd(i,j)}

枚举最大公因数 dd,有:

∑i=1n∑j=1m∑d∣i,d∣jgcd⁡(id,jd)=1i⋅jd\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)d⋅∑i=1⌊nd⌋∑j=1⌊md⌋[gcd⁡(i,j)=1]i⋅j\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

由:

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

得:

∑d=1min⁡(n,m)d⋅∑i=1⌊nd⌋∑j=1⌊md⌋i⋅j∑a∣gcd⁡(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)d⋅∑t=1⌊nd⌋t2μ(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⌋)∑a∣Ta⋅(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⌋)T∑b∣Tbμ(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)=∑b∣Tbμ(b)f(T)=\sum\limits_{b|T}b \mu(b),易知 f(n)f(n) 为积性函数,且满足:

f(p)=1−p,f(pk)=f(p),p∈primesf(p)=1-p,f(p^k)=f(p),p \in primes

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

CODE

P6156 简单题

求:

∑i=1n∑j=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=1n∑j=1m(i+j)kf(gcd⁡(i,j))gcd⁡(i,j)=∑i=1n∑j=1n(i+j)kμ(gcd⁡(i,j))2gcd⁡(i,j)=∑d=1n∑i=1n∑j=1n(i+j)kμ(d)2d[gcd⁡(i,j)=d]=∑d=1ndk+1μ(d)2∑i=1⌊nd⌋∑j=1⌊nd⌋(i+j)k∑p∣gcd⁡(i,j)μ(p)=∑d=1ndk+1μ(d)2∑i=1⌊nd⌋∑j=1⌊nd⌋(i+j)k∑p=1⌊nd⌋μ(p)[p∣i][p∣j]=∑d=1ndk+1μ(d)2∑p=1⌊nd⌋μ(p)∑i=1⌊npd⌋∑j=1⌊npd⌋(ip+jp)k=∑d=1ndk+1μ(d)2∑p=1⌊nd⌋μ(p)pk∑i=1⌊npd⌋∑j=1⌊npd⌋(i+j)k=∑d=1ndk+1μ(d)2∑p=1⌊nd⌋μ(p)pkS⁡(⌊ndp⌋)S(n)=∑i=1n∑j=1n(i+j)k=∑T=1nS⁡(⌊nT⌋)∑d∣Tdk+1μ(d)2μ(Td)(Td)k=∑T=1nS⁡(⌊nT⌋)∑d∣Tdμ(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)=∑d∣ndμ(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^k,g⁡(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 个操作,每行 11 至 33 个整数,意义如下:

  • 11:对矩阵 AA 进行高斯消元,使之成为一个上三角矩阵。(注意:这里,高斯消元中只允许将一行的某一个倍数加到另一行上,不允许交换任意两行,不允许将某行乘上一个倍数,保证这样之后仍然可以得到上三角矩阵,并且保证消元之后的矩阵的每个元素均为非负整数。)
  • 2 x y2\ x\ y:求出当前矩阵的 Ax,yA_{x,y}。
  • 3 x3\ x:求出 ∑i=1x∑j=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},你需要求出 det⁡B\det B。

上述所有答案对 998244353998244353 取模。

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

Ai,j′={ijφ(i)i∣j0i∤jA'_{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)i∣j0i∤jB'_{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=1n∑j=1nijgcd⁡(i,j)=∑d=1nd∑i=1n∑j=1nij[gcd⁡(i,j)=1]=∑d=1nd3∑i=1⌊nd⌋∑j=1⌊nd⌋ij[gcd⁡(i,j)=1]=∑d=1nd3∑i=1⌊nd⌋∑j=1⌊nd⌋ij∑p∣gcd⁡(i,j)μ(p)=∑d=1nd3∑p=1⌊nd⌋μ(p)∑i=1⌊nd⌋∑j=1⌊nd⌋ij=∑d=1nd3∑p=1⌊nd⌋p2μ(p)∑i=1⌊npd⌋∑j=1⌊npd⌋ij=∑d=1nd3∑p=1⌊nd⌋p2μ(p)(∑i=1⌊npd⌋i)2∑d=1nd∑p=1⌊nd⌋(pd)2μ(p)(∑i=1⌊npd⌋i)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=1nd∑p=1⌊nd⌋(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⌋)∑d∣Tdμ(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)=n∑d∣ndφ(d)g(n)=n\sum\limits_{d|n}d\varphi(d)

设 h(n)=∑d∣ndφ(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=1a∏j=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(l−1,l−1)S(r,l−1)×S(l−1,r)\frac{S(r,r)\times S(l-1,l-1)}{S(r,l-1)\times S(l-1,r)}

不妨设 a≤ba \leq b。

令 dp=tdp=t,则有:

S(a,b)=∏i=1a∏j=1blcm⁡(a,b)lcm⁡(a,b)=∏i=1a∏j=1bijgcd⁡(a,b)(ijgcd⁡(a,b))=∏d=1a∏i=1a∏j=1bijd(ijd)[gcd⁡(i,j)=d]=∏d=1a∏i=1⌊ad⌋∏j=1⌊bd⌋(ijd)ijd[gcd⁡(i,j)=1]=∏d=1a∏i=1⌊ad⌋∏j=1⌊bd⌋(ijd)ijd∑p=1⌊ad⌋μ(p)[p∣i][p∣j]=∏d=1a∏p=1⌊ad⌋∏i=1⌊ad⌋[p∣i]∏j=1⌊bd⌋[p∣j](ijd)ijdμ(p)=∏d=1a∏p=1⌊ad⌋∏i=1⌊adp⌋∏j=1⌊bdp⌋(ijdp2)ijdp2μ(p)=∏t=1a∏p∣t∏i=1⌊at⌋∏j=1⌊bt⌋(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=1n∏j=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=1n∏j=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(∏p∣t(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)=∑d∣xdμ(d),y(x)=∏d∣xddμ(d)h(x)=\sum\limits_{d|x}d\mu(d),y(x)=\prod\limits_{d|x}d^{d\mu(d)},则有:

∏t=1aG(⌊at⌋,⌊bt⌋)t⋅h(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,对于 1≤t<S1 \leq t < S 的直接暴力算,因为这部分 l,rl,r 相差较小。

对于 S≤t≤nS \leq t \leq n 的,再数论分块算。

CODE

P3704 [SDOI2017]数字表格

求:

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

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

化简式子,有:

∏i=1n∏j=1mfgcd⁡(i,j)=∏d=1n∏i=1n∏j=1nfd[gcd⁡(i,j)=d]=∏d=1nfd∑i=1n∑j=1m[gcd⁡(i,j)=d]=∏d=1nfd∑i=1⌊nd⌋∑j=1⌊md⌋[gcd⁡(i,j)=1]=∏d=1nfd∑i=1⌊nd⌋∑j=1⌊md⌋∑p∣gcd⁡(i,j)μ(p)=∏d=1nfd∑i=1⌊nd⌋∑j=1⌊md⌋∑p=1⌊nd⌋μ(p)[p∣i][p∣j]=∏d=1nfd∑p=1⌊nd⌋μ(p)⌊npd⌋⌊mpd⌋=∏T=1n(∏d∣Tfdμ(Td))⌊nT⌋⌊mT⌋\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)=∏d∣nfdμ(nd)F(n)=\prod\limits_{d|n}f_d^{\mu(\frac{n}{d})}。

则有:

∏T=1nF(T)⌊nT⌋⌊mT⌋\prod_{T=1}^{n}F(T)^{\lfloor\frac{n}{T}\rfloor\lfloor\frac{m}{T}\rfloor}

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

CODE

SP26045 GCDMAT2 - GCD OF MATRIX (hard)

最优解,嘿嘿。

求:

∑i=i1i2∑j=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 组数据。

其中,T≤50000,1≤i2,j2≤106T \leq 50000,1 \leq i2,j2\leq 10^6。

首先设 S(n,m)=∑i=1n∑j=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=1n∑j=1mgcd⁡(i,j)=∑d=1nd∑i=1n∑j=1m[gcd⁡(i,j)=d]=∑d=1nd∑i=1⌊nd⌋∑j=1⌊md⌋[gcd⁡(i,j)=1]=∑d=1nd∑i=1⌊nd⌋∑j=1⌊md⌋∑p∣gcd⁡(i,j)μ(p)=∑d=1nd∑i=1⌊nd⌋∑j=1⌊md⌋∑p=1⌊nd⌋μ(p)[p∣i][p∣j]=∑d=1nd∑p=1⌊nd⌋μ(p)∑i=1⌊nd⌋∑j=1⌊md⌋[p∣i][p∣j]=∑d=1nd∑p=1⌊nd⌋μ(p)⌊npd⌋⌊mpd⌋=∑d=1nd∑p=1⌊nd⌋μ(p)⌊npd⌋⌊mpd⌋=∑T=1n∑p∣Tμ(p)Tp⌊nT⌋⌊mT⌋设 T=dp=∑T=1nφ(T)⌊nT⌋⌊mT⌋\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)(⌊i2i⌋−⌊i1i⌋)(⌊j2i⌋−⌊j1i⌋)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}

但是,还是过不了。

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

但还可以优化。

考虑根号分治。

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

详见代码。

CODE

P1587 [NOI2016] 循环之美

求 ∑x=1n∑y=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}\}

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

xkly−⌊xkly⌋=xy−⌊xy⌋xkl−⌊xkly⌋⋅y=x−⌊xy⌋⋅yxkl≡x(mody)kl≡1(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=1n∑j=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=1n∑j=1m[gcd⁡(i,j)=1][gcd⁡(j,k)=1]=∑i=1n∑j=1m[gcd⁡(j,k)=1]∑p∣gcd⁡(i,j)μ(p)=∑i=1n∑j=1m[gcd⁡(j,k)=1]∑p=1min⁡(n,m)μ(p)[p∣i][p∣j]=∑p=1min⁡(n,m)μ(p)∑i=1n∑j=1m[p∣i][p∣j][gcd⁡(j,k)=1]=∑p=1min⁡(n,m)μ(p)∑p∣in∑p∣jm[gcd⁡(j,k)=1]=∑p=1min⁡(n,m)μ(p)⌊np⌋∑p∣jm[gcd⁡(j,k)=1]=∑p=1min⁡(n,m)μ(p)[gcd⁡(p,k)=1]⌊np⌋∑p=1⌊mp⌋[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(n mod k)+⌊nk⌋φ(k)\begin{aligned} f(n) &=f(n \bmod k)+\lfloor\frac{n}{k}\rfloor\varphi(k) \end{aligned}

那么原式等于:

∑p=1min⁡(n,m)⌊np⌋f(⌊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)[p∣i][p∣k]=∑p∣kmin⁡(n,k)μ(p)∑p∣inμ(i)=∑p∣kmin⁡(n,k)μ(p)∑i=1⌊np⌋μ(ip)=∑p∣kmin⁡(n,k)μ(p)2∑i=1⌊np⌋μ(i)[gcd⁡(i,p)=1]=∑p∣kmin⁡(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=1⌊ni⌋μ(j)[gcd⁡(j,k)=1]=∑i=1n∑j=1⌊ni⌋μ(j)[gcd⁡(ij,k)=1]=∑t=1n∑d∣t[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)=1−∑i=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=1n∑j=1nijgcd⁡(i,j)2[gcd⁡(i,j)=d]=∑d=1ng(d)∑i=1⌊nd⌋∑j=1⌊nd⌋ij[gcd⁡(i,j)=1]=∑d=1ng(d)∑i=1⌊nd⌋∑j=1⌊nd⌋ij∑p∣gcd⁡(i,j)μ(p)=∑d=1ng(d)∑p=1⌊nd⌋μ(p)∑i=1⌊nd⌋i[p∣i]∑j=1⌊nd⌋j[p∣j]=∑d=1ng(d)∑p=1⌊nd⌋μ(p)p2(∑i=1⌊⌊nd⌋p⌋i)2=∑d=1ng(d)∑p=1⌊nd⌋μ(p)p2S(⌊⌊nd⌋p⌋)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)

根据 ⌊ni⌋−⌊n−1i⌋=[i∣n]\lfloor\frac{n}{i}\rfloor-\lfloor\frac{n-1}{i}\rfloor=[i|n],有:

G(n)−G(n−1)=∑i∣ni2μ(i)(S(⌊ni⌋)2−S(⌊ni⌋−1)2=∑i∣ni2μ(i)(ni)3=n2∑i∣nμ(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=1⌊nd⌋i2φ(i)\sum_{d=1}^{n}g(d)\sum_{i=1}^{\lfloor\frac{n}{d}\rfloor}i^2\varphi(i)

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

CODDE

P4240 毒瘤之神的考验

求:

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

先要考虑怎么把 φ\varphi 转成带有 gcd⁡\gcd 或 lcm⁡\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)=i∏p∣ip−1pj∏p∣jp−1pp∈primes=ij∏p∣ijp−1p∏p∣gcd⁡(i,j)p−1p\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)=ij∏p∣ijp−1pgcd⁡(i,j)∏p∣gcd⁡(i,j)p−1p=φ(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=1n∑j=1mφ(ij)=∑i=1n∑j=1mφ(i)φ(j)gcd⁡(i,j)φ(gcd⁡(i,j))=∑d=1ndφ(d)∑i=1n∑j=1mφ(i)φ(j)[gcd(i,j)=d]=∑d=1ndφ(d)∑i=1⌊nd⌋∑j=1⌊md⌋φ(id)φ(jd)[gcd(i,j)=1]=∑d=1ndφ(d)∑p=1⌊nd⌋μ(p)∑i=1⌊nd⌋φ(id)[p∣i]∑j=1⌊md⌋φ(jd)[p∣j]=∑d=1ndφ(d)∑p=1⌊nd⌋μ(p)∑i=1⌊nkd⌋φ(ikd)∑j=1⌊mkd⌋φ(jkd)=∑T=1n(∑d∣Tdφ(d)μ(Tp))(∑i=1⌊nT⌋φ(iT))(∑j=1⌊mT⌋φ(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)=∑d∣ndφ(d)μ(np)f(n)=\sum\limits_{d|n}\frac{d}{\varphi(d)}\mu(\frac{n}{p}),线性筛预处理即可,O(nln⁡n)\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,n−1)+φ(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⌋=⌊nr⌋and⁡⌊ml⌋=⌊mr⌋h(⌊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,i−1)+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)

对于 ⌊nr⌋≤S\lfloor\frac{n}{r}\rfloor \leq S 可直接查询。

否则,可知 r≤⌊nS⌋r \leq \lfloor\frac{n}{S}\rfloor,数论分块计算即可。

CODE

P5572 [CmdOI2019]简单的数论题

求:

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

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

下面默认 n≤mn \leq m。

先化简原式,有:

∑i=1n∑j=1mφ(lcm⁡(i,j)gcd⁡(i,j))=∑i=1n∑j=1mφ(i×jgcd⁡(i,j)2)=∑d=1n∑i=1n∑j=1mφ(i×jd2)[gcd⁡(i,j)=d]=∑d=1n∑i=1⌊nd⌋∑j=1⌊md⌋φ(i×j)[gcd⁡(i,j)=1]=∑d=1n∑i=1⌊nd⌋∑j=1⌊md⌋φ(i)φ(j)[gcd⁡(i,j)=1]=∑d=1n∑i=1⌊nd⌋∑j=1⌊md⌋φ(i)φ(j)∑p∣gcd⁡(i,j)μ(p)=∑d=1n∑p=1⌊nd⌋μ(p)∑i=1⌊nd⌋∑j=1⌊md⌋φ(i)φ(j)[p∣i][p∣j]=∑d=1n∑p=1⌊nd⌋μ(p)∑i=1⌊npd⌋φ(ip)∑j=1⌊mpd⌋φ(jp)=∑T=1n∑p∣Tμ(p)∑i=1⌊nT⌋φ(ip)∑j=1⌊mT⌋φ(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=1n∑p∣Tμ(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=1z∑p∣iμ(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=1A∏j=1B∏k=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=1A∏j=1B∏k=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=1a∏j=1b∏k=1cif(type)f2(a,b,c)=∏i=1a∏j=1b∏k=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_1 与 f2f_2。

type=0\large{type=0}
f1(a,b,c)=∏i=1a∏j=1b∏k=1cif2(a,b,c)=∏i=1a∏j=1b∏k=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=1a∏j=1b∏k=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(log⁡n)O(\log n)。

再考虑 f2f_2,显然有:

∏i=1a∏j=1b∏k=1cgcd⁡(i,j)=(∏i=1a∏j=1bgcd⁡(i,j))c=(∏d=1d(∑i=1a∑j=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=1a∑j=1b[gcd⁡(i,j)=d]=∑i=1⌊ad⌋∑j=1⌊bd⌋[gcd⁡(i,j)=1]=∑i=1⌊ad⌋∑j=1⌊bd⌋∑k∣gcd⁡(i,j)μ(k)=∑k=1μ(k)⌊akd⌋⌊bkd⌋\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)⌊akd⌋⌊bkd⌋))c=(∏d=1(d∑k=1μ(k))⌊akd⌋⌊bkd⌋)c=∏d=1(∏k=1⌊nd⌋d(μ(k)⌊akd⌋⌊bkd⌋))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((∏d∣tdμ(td))⌊at⌋⌊bt⌋)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

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

复杂度 O(nlog⁡n)O(n\log n)。

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

type=1\large{type=1}
f1(a,b,c)=∏i=1a∏j=1b∏k=1cii×j×kf2(a,b,c)=∏i=1a∏j=1b∏k=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=1a∏j=1b∏k=1cii×j×k=∏i=1a∏j=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=1a∏j=1b∏k=1cgcd⁡(i,j)i×j×k=(∏i=1a∏j=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=1a∑j=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=1a∑j=1bi×j[gcd⁡(i,j)=d]=d2∑i=1⌊ad⌋∑j=1⌊bd⌋i×j[gcd⁡(i,j)=1=d2∑i=1⌊ad⌋i∑j=1⌊bd⌋j∑t∣gcd⁡(i,j)μ(t)=d2∑i=1⌊ad⌋i∑j=1⌊bd⌋j∑k∣gcd⁡(i,j)μ(k)=d2∑k=1μ(k)∑i=1⌊ad⌋i[k∣i]∑j=1⌊bd⌋j[k∣j]=d2∑k=1k2μ(k)∑i=1⌊akd⌋i∑j=1⌊bkd⌋j=d2∑k=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(d2∑k=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=1⌊nd⌋d(d2k2μ(k)))(S⁡(⌊akd⌋)S⁡(⌊bkd⌋)))S⁡(c)=∏t=1((∏d∣td(d2(td)2μ(td)))S⁡(⌊at⌋)S⁡(⌊bt⌋))S⁡(c)=∏t=1((∏d∣td(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}

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

复杂度 O(nlog⁡2n)O(n\log^2 n)。

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

type=2\large{type=2}
f1(a,b,c)=∏i=1a∏j=1b∏k=1cigcd⁡(i,j,k)f2(a,b,c)=∏i=1a∏j=1b∏k=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=1a∏j=1b∏k=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=1a∑j=1b∑k=1cln⁡(lcm⁡(i,j)gcd⁡(i,k))gcd⁡(i,j,k)=∑d=1min⁡(a,b,c)φ(d)∑i=1⌊ad⌋∑j=1⌊bd⌋∑k=1⌊cd⌋ln⁡(lcm⁡(id,jd)gcd⁡(id,kd))=∑d=1min⁡(a,b,c)φ(d)∑i=1⌊ad⌋∑j=1⌊bd⌋∑k=1⌊cd⌋ln⁡(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=1⌊ad⌋∏j=1⌊bd⌋∏k=1⌊cd⌋lcm⁡(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  阅读(61)  评论(0)    收藏  举报  来源