基础莫反,推式子。

「SPOJ 5971」LCMSUM

SPOJ LCMSUM

TT 组数据,每次求:

i=1nlcm(i,n)\sum_{i=1}^n \operatorname{lcm}(i,n)

T105,n106T\le 10^5,n\le 10^6

i=1nlcm(i,n)=i=1ni×ngcd(i,n)=12(i=1n1i×ngcd(i,n)+i=n11i×ngcd(i,n))+n=12(i=1n1i×ngcd(i,n)+i=n11i×ngcd(ni,n))+n=12i=1nn2gcd(i,n)+n2\begin{aligned} &\sum_{i=1}^n \operatorname{lcm}(i,n)\\ =&\sum_{i=1}^n \frac{i\times n}{\gcd(i,n)}\\ =&\frac{1}{2}\left( \sum_{i=1}^{n-1} \frac{i\times n}{\gcd(i,n)} +\sum_{i=n-1}^{1} \frac{i\times n}{\gcd(i,n)}\right) + n\\ =&\frac{1}{2}\left( \sum_{i=1}^{n-1} \frac{i\times n}{\gcd(i,n)} +\sum_{i=n-1}^{1} \frac{i\times n}{\gcd(n-i,n)}\right)+n \\ =&\frac{1}{2}\sum_{i=1}^{n} \frac{n^2}{\gcd(i,n)} +\frac{n}{2}\\ \end{aligned}

考虑相同的 gcd(i,n)\gcd(i,n) 一起计算,gcd(i,n)=d\gcd(i,n)=diiφ(nd)\varphi(\frac{n}{d}) 个。

12dnn2φ(nd)d+n2=n2dnndφ(nd)+n2=n2(dndφ(d))+n2\begin{aligned} &\frac{1}{2}\sum_{d\mid n} \frac{n^2\varphi\left(\frac{n}{d}\right)}{d}+\frac{n}{2}\\ =&\frac{n}{2}\sum_{d\mid n} \frac{n}{d}\varphi\left(\frac{n}{d}\right)+\frac{n}{2}\\ =&\frac{n}{2}\left(\sum_{d\mid n} d\cdot \varphi(d)\right) +\frac{n}{2} \end{aligned}


设:

f(n)=dndφ(d)f(n)=\sum_{d|n} d\cdot\varphi(d)

n=p1c1p2c2pkckn=p_1^{c_1} \cdot p_2^{c_2}\cdots p_k^{c_k}

考虑 f(pc)f(p^c),其约数只有 p0,p1,,pcp^0,p^1,\dots,p^c

f(pc)=i=0cpiφ(pi)=i=0cp2i1(p1)f(p^c)=\sum_{i=0}^c p^i\cdot\varphi(p^i)=\sum_{i=0}^c p^{2i-1}\cdot(p-1)

考虑 f(p1c1p2c2)f(p_1^{c_1}\cdot p_2^{c_2}),其中 gcd(p1,p2)=1\gcd(p_1,p_2)=1

f(p1c1p2c2)=d1p1c1d2p2c2d1d2φ(d1d2)=d1p1c1d2p2c2d1φ(d1)d2φ(d2)=d1p1c1d1φ(d1)d2p2c2d2φ(d2)=f(p1c1)f(p2c2)\begin{aligned} f(p_1^{c_1}\cdot p_2^{c_2})=&\sum_{d_1\mid p_1^{c_1}} \sum_{d_2\mid p_2^{c_2}} d_1\cdot d_2\cdot \varphi(d_1\cdot d_2)\\ =&\sum_{d_1\mid p_1^{c_1}} \sum_{d_2\mid p_2^{c_2}} d_1\varphi(d_1) \cdot d_2\varphi(d_2)\\ =&\sum_{d_1\mid p_1^{c_1}} d_1\varphi(d_1) \cdot \sum_{d_2\mid p_2^{c_2}}d_2\varphi(d_2)\\ =&f(p_1^{c_1})\cdot f(p_2^{c_2}) \end{aligned}

考虑线性筛筛 f(n)f(n) 。首先有 f(pc)=f(pc1)+p2c1(p1)f(p^c)=f(p^{c-1})+ p^{2c-1}(p-1),再考虑由 f(i),f(p)f(i),f(p)f(ip)f(i\cdot p)

gcd(i,p)=1\gcd(i,p)=1

f(ip)=f(i)f(p)f(i\cdot p) = f(i)\cdot f(p)

pip\mid i,令 i=pc1×ii=p^{c-1} \times i',注意到线性筛中 ppp×ip\times i 最小的素数,再额外维护一个 cnc_n 表是 nn 中最小的素数的次数即可。


Crash的数字表格

Crash的数字表格

求:

i=1nj=1mlcm(i,j)(mod20101009)\sum_{i=1}^n\sum_{j=1}^m \operatorname{lcm}(i,j) \pmod{20101009}

n,m107n,m\le 10^7

=i=1nj=1mi×jgcd(i,j)=i=1nj=1mdi,dj,gcd(id,jd)=1i×jd=d=1ni=1n/dj=1m/d[gcd(i,j)=1]id×jdd=d=1ndi=1n/dj=1m/d[gcd(i,j)=1]ij\begin{aligned} =&\sum_{i=1}^n\sum_{j=1}^m \frac{i\times j}{\gcd(i,j)}\\ =&\sum_{i=1}^n\sum_{j=1}^m \sum_{d|i,d|j,\gcd(\frac{i}{d},\frac{j}{d})=1} \frac{i\times j}{d}\\ =&\sum_{d=1}^n \sum_{i=1}^{\lfloor n/d\rfloor}\sum_{j=1}^{\lfloor m/d\rfloor} [\gcd(i,j)=1]\frac{id\times jd}{d}\\ =&\sum_{d=1}^n d \sum_{i=1}^{\lfloor n/d\rfloor}\sum_{j=1}^{\lfloor m/d\rfloor} [\gcd(i,j)=1] \cdot i \cdot j\\ \end{aligned}

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

f(n,m)=i=1nj=1mϵ(gcd(i,j))ij=i=1nj=1mdgcd(i,j)μ(d)ij=i=1nj=1mdi,djμ(d)ij=d=1min(n,m)μ(d)d2i=1n/dj=1m/dij\begin{aligned} f(n,m)=&\sum_{i=1}^{n}\sum_{j=1}^{m} \epsilon(\gcd(i,j)) \cdot i \cdot j\\ =&\sum_{i=1}^n\sum_{j=1}^m \sum_{d\mid \gcd(i,j)} \mu(d)\cdot i \cdot j\\ =&\sum_{i=1}^n\sum_{j=1}^m \sum_{d\mid i,d\mid j} \mu(d)\cdot i \cdot j\\ =&\sum_{d=1}^{\min(n,m)}\mu(d)\cdot d^2 \sum_{i=1}^{\lfloor n/d\rfloor}\sum_{j=1}^{\lfloor m/d\rfloor} i\cdot j\\ \end{aligned}

g(x)=μ(x)x2g(x)=\mu(x)\cdot x^2,线性筛可求;令 h(n,m)=i=1nj=1mij=ij(1+i)(1+j)4h(n,m)=\sum_{i=1}^n\sum_{j=1}^m i\cdot j=\frac{ij(1+i)(1+j)}{4}

f(n,m)=d=1min(n,m)g(d)h(nd,md)f(n,m)=\sum_{d=1}^{\min(n,m)} g(d) \cdot h(\left\lfloor \tfrac{n}{d}\right\rfloor,\left\lfloor \tfrac{m}{d}\right\rfloor)

预处理 g(n)g(n) 前缀和,数论分块 f(n,m)f(n,m)O(n)O(\sqrt{n}) 内可求。

原式:

d=1ndf(nd,md)\sum_{d=1}^{n} d \cdot f(\left\lfloor \tfrac{n}{d}\right\rfloor,\left\lfloor \tfrac{m}{d}\right\rfloor)

同样数论分块,算 O(n)O(\sqrt{n})ff,总复杂度 O(n)O(n)


「SDOI2015」约数个数和

TT 祖数据,求

i=1nj=1mσ0(ij)\sum_{i=1}^n \sum_{j=1}^m \sigma_0 (ij)

T,n,m50000T,n,m\le 50000

σ0(x)\sigma_0(x)xx 约数个数)

有性质:

σ0(ij)=xiyj[gcd(x,y)=1]\sigma_0(ij)=\sum_{x\mid i}\sum_{y\mid j} [\gcd(x,y)=1]

那么:

σ0(nm)=xnym[gcd(x,y)=1]=xnymdgcd(x,y)μ(d)=xnymdx,dyμ(d)=d=1nμ(d)dx,xndy,ym1=dgcd(n,m)μ(d)σ0(nd)σ0(md)\begin{aligned} \sigma_0(nm)=&\sum_{x\mid n}\sum_{y\mid m} [\gcd(x,y)=1]\\ =&\sum_{x\mid n}\sum_{y\mid m} \sum_{d\mid \gcd(x,y)} \mu(d)\\ =&\sum_{x\mid n}\sum_{y\mid m} \sum_{d\mid x,d\mid y} \mu(d)\\ =&\sum_{d=1}^{n} \mu(d) \sum_{d\mid x,x\mid n} \sum_{d\mid y,y\mid m} 1\\ =&\sum_{d|\gcd(n,m)} \mu(d)\cdot \sigma_0\left(\frac{n}{d}\right) \cdot \sigma_0\left(\frac{m}{d}\right) \end{aligned}

回到原式:

i=1nj=1mσ0(ij)=i=1nj=1mdi,djμ(d)σ0(id)σ0(jd)=d=1min(n,m)μ(d)i=1n/dj=1m/dσ0(i)σ0(j)\begin{aligned} \sum_{i=1}^n\sum_{j=1}^m \sigma_0(ij)=&\sum_{i=1}^n\sum_{j=1}^m\sum_{d|i,d|j} \mu(d)\cdot \sigma_0\left(\frac{i}{d}\right) \cdot \sigma_0\left(\frac{j}{d}\right) \\ =&\sum_{d=1}^{\min(n,m)} \mu(d)\sum_{i=1}^{\left\lfloor n/d\right\rfloor}\sum_{j=1}^{\left\lfloor m/d\right\rfloor} \sigma_0(i)\sigma_0(j)\\ \end{aligned}

s(n)=i=1nσ0(i)s(n)=\sum_{i=1}^n \sigma_0(i),那么

d=1min(n,m)μ(d)s(nd)s(md)\sum_{d=1}^{\min(n,m)} \mu(d) s\left(\left\lfloor \frac{n}{d}\right\rfloor\right) s\left(\left\lfloor \frac{m}{d}\right\rfloor\right)

s(n)s(n) 可预处理,每次求答案数论分块即可,总复杂度 O(n+Tn)O(n+T\sqrt{n})


简单的数学题

luogu-P3768 简单的数学题

i=1nj=1nijgcd(i,j)(modp)\sum_{i=1}^n\sum_{j=1}^n ij\gcd(i,j) \pmod{p}

n1010,5×108p1.1×109,  p为质数n\le 10^{10},\,5\times 10^8 \le p \le 1.1\times 10^9,\;p\text{为质数}

φ1=id\varphi\ast 1=\mathrm{id} 反演:

i=1nj=1nijgcd(i,j)=i=1nj=1nijdgcd(i,j)φ(d)=i=1nj=1nijdi,djφ(d)=d=1nφ(d)d2i=1n/dj=1n/dij\begin{aligned} &\sum_{i=1}^n\sum_{j=1}^n ij\gcd(i,j)\\ =&\sum_{i=1}^n\sum_{j=1}^n ij\sum_{d|\gcd(i,j)} \varphi(d)\\ =&\sum_{i=1}^n\sum_{j=1}^n ij\sum_{d|i,d|j} \varphi(d)\\ =&\sum_{d=1}^{n} \varphi(d)d^2 \sum_{i=1}^{\left\lfloor n/d\right\rfloor} \sum_{j=1}^{\left\lfloor n/d\right\rfloor} ij\\ \end{aligned}

s(n)=i=1nj=1nij=n2(n+1)24s(n)=\sum_{i=1}^n\sum_{j=1}^n ij=\frac{n^2(n+1)^2}{4}

O(1)O(1) 可求。带回原式:

d=1nφ(d)d2s(n/d)\sum_{d=1}^{n} \varphi(d)d^2\cdot s(\left\lfloor n/d\right\rfloor)

可以数论分块 O(n)O(\sqrt{n}) ,但是需要 101010^{10} 范围的 φ(d)d2\varphi(d)d^2,需要杜教筛

具体的,令 f(n)=φ(n)n2=(id2φ)(n)f(n)=\varphi(n)n^2=(\mathrm{id}^2\varphi)(n)F(n)=i=1nf(i)F(n)=\sum_{i=1}^n f(i),令 g(n)=(id2)(n)g(n)=(\mathrm{id}^2)(n)G(n)=i=1ng(i)G(n)=\sum_{i=1}^n g(i)

h(n)=(fg)(n)=dnd2φ(d)n2d2=n2dnφ(d)=n3h(n)=(f\ast g)(n)=\sum_{d\mid n} d^2\varphi(d)\cdot \frac{n^2}{d^2}= n^2\sum_{d|n} \varphi(d) = n^3

H(n)=i=1nh(i)=i=1ni3=14n2(n+1)2H(n)=\sum_{i=1}^n h(i)=\sum_{i=1}^n i^3=\frac{1}{4}n^2(n+1)^2

G(n)=i=1ng(i)=i=1ni2=16n(n+1)(2n+1)G(n)=\sum_{i=1}^n g(i)=\sum_{i=1}^n i^2 =\frac{1}{6}n(n+1)(2n+1)

杜教筛

g(1)F(n)=H(n)d=2ng(d)F(n/d)g(1)F(n) = H(n) - \sum_{d=2}^n g(d) F(\left\lfloor n/d\right\rfloor)