下面提到的所有知识不一定同属一个范畴,但是它们的思想和作用相似,所以将其归为一篇文章。
莫比乌斯反演
请先学习狄利克雷卷积,否则您会一脸懵逼。
一般式:
F ( n ) = ∑ d ∣ n G ( d ) → G ( n ) = ∑ d ∣ n μ ( n d ) F ( d ) F ( n ) = ∑ n ∣ d G ( d ) → G ( n ) = ∑ n ∣ d μ ( d n ) F ( d ) \begin{aligned} F(n) = \sum_{d | n} G(d) \rightarrow G(n) = \sum_{d | n} \mu(\frac{n}{d}) F(d) \\ F(n) = \sum_{n | d} G(d) \rightarrow G(n) = \sum_{n | d} \mu(\frac{d}{n}) F(d) \end{aligned} F(n)=d∣n∑G(d)→G(n)=d∣n∑μ(dn)F(d)F(n)=n∣d∑G(d)→G(n)=n∣d∑μ(nd)F(d)
证明可以考虑下面恒等式的第一条。
然后再放一些有助于反演的恒等式:(其中 ∗ * ∗ 指狄利克雷卷积, ϵ ( n ) \epsilon(n) ϵ(n) 表示 [ n = 1 ] [n = 1] [n=1])
μ ∗ 1 = ϵ φ ∗ 1 = i d μ ∗ i d = μ ∗ 1 ∗ φ = ϵ ∗ φ = φ φ ( n ) = ∑ i = 1 n ϵ ( gcd ( n , i ) ) φ ( n m ) = φ ( n ) φ ( m ) gcd ( n , m ) φ ( gcd ( n , m ) ) ∑ i = 1 n ∑ j = 1 n ϵ ( gcd ( i , j ) ) = 2 ⋅ ( ∑ i = 1 n φ ( i ) ) − 1 ∑ d ∣ i j 1 = ∑ x ∣ i ∑ y ∣ j ϵ ( gcd ( x , y ) ) ∑ d ∣ i j k 1 = ∑ x ∣ i ∑ y ∣ j ∑ z ∣ k ϵ ( gcd ( x , y ) ) ϵ ( gcd ( y , z ) ) ϵ ( gcd ( x , z ) ) ⋯ ⋯ \begin{aligned} &\mu * 1 = \epsilon \\ & \varphi * 1 = id \\ & \mu * id = \mu * 1 * \varphi = \epsilon * \varphi = \varphi \\ &\varphi(n) = \sum_{i = 1}^n \epsilon(\gcd(n, i)) \\ &\varphi(nm) = \frac{\varphi(n)\varphi(m)\gcd(n, m)}{\varphi(\gcd(n, m))} \\ &\sum_{i=1}^n\sum_{j = 1}^n \epsilon(\gcd(i, j)) = 2 \cdot (\sum_{i = 1}^n\varphi(i)) - 1 \\ & \sum_{d | ij} 1 = \sum_{x|i} \sum_{y|j} \epsilon(\gcd(x, y)) \\ & \sum_{d | ijk} 1 = \sum_{x|i} \sum_{y|j} \sum_{z|k} \epsilon(\gcd(x, y))\epsilon(\gcd(y, z))\epsilon(\gcd(x, z)) \\ &\cdots\cdots \end{aligned} μ∗1=ϵφ∗1=idμ∗id=μ∗1∗φ=ϵ∗φ=φφ(n)=i=1∑nϵ(gcd(n,i))φ(nm)=φ(gcd(n,m))φ(n)φ(m)gcd(n,m)i=1∑nj=1∑nϵ(gcd(i,j))=2⋅(i=1∑nφ(i))−1d∣ij∑1=x∣i∑y∣j∑ϵ(gcd(x,y))d∣ijk∑1=x∣i∑y∣j∑z∣k∑ϵ(gcd(x,y))ϵ(gcd(y,z))ϵ(gcd(x,z))⋯⋯
推完式子之后,可以考虑用一些数论筛法预处理某些项,或是用整除分块求值。
拿一道例题来讲解吧。
一共 T T T 组询问 ( T ≤ 1 0 4 ) (T \le 10^4) (T≤104),给定常数 K K K,每次询问单独给定 N N N,满足 N ≤ 1 0 7 N \le 10^7 N≤107,求出:
∑ i = 1 N ∑ j = 1 N ( i + j ) K gcd ( i , j ) μ 2 ( gcd ( i , j ) ) ( m o d 2 32 ) \sum_{i = 1}^N\sum_{j = 1}^N(i + j)^K \gcd(i, j)\mu^2(\gcd(i, j))~(\bmod 2^{32}) i=1∑Nj=1∑N(i+j)Kgcd(i,j)μ2(gcd(i,j)) (mod232)
看模数 2 32 2^{32} 232,显然可以自然溢出,这可以帮助我们减小常数。
接下来表演推式子:
原 式 = ∑ d = 1 N ∑ i = 1 N ∑ j = 1 N [ gcd ( i , j ) = d ] ( ( i + j ) K d μ 2 ( d ) ) = ∑ d = 1 N d K + 1 μ 2 ( d ) ∑ i = 1 ⌊ N d ⌋ ∑ j = 1 ⌊ N d ⌋ ϵ ( gcd ( i , j ) ) ( i + j ) K = ∑ d = 1 N d K + 1 μ 2 ( d ) ∑ i = 1 ⌊ N d ⌋ ∑ j = 1 ⌊ N d ⌋ ( i + j ) K ∑ x ∣ gcd ( i , j ) μ ( x ) = ∑ d = 1 N d K + 1 μ 2 ( d ) ∑ x = 1 ⌊ N d ⌋ x K μ ( x ) ∑ i = 1 ⌊ N d x ⌋ ∑ j = 1 ⌊ N d x ⌋ ( i + j ) K = ∑ T = 1 N T K ∑ i = 1 ⌊ N T ⌋ ∑ j = 1 ⌊ N T ⌋ ( i + j ) K ∑ d ∣ T d μ 2 ( d ) μ ( T d ) \begin{aligned} 原式 &= \sum_{d = 1}^N\sum_{i = 1}^N\sum_{j = 1}^N[\gcd(i, j) = d]((i + j)^K d\mu^2(d)) \\ &= \sum_{d = 1}^Nd^{K + 1}\mu^2(d)\sum_{i = 1}^{\lfloor\frac{N}{d}\rfloor} \sum_{j = 1}^{\lfloor\frac{N}{d}\rfloor} \epsilon(\gcd(i, j))(i + j)^K \\ &= \sum_{d = 1}^N d^{K + 1}\mu^2(d)\sum_{i = 1}^{\lfloor\frac{N}{d}\rfloor}\sum_{j = 1}^{\lfloor\frac{N}{d}\rfloor}(i + j)^K\sum_{x | \gcd(i, j)} \mu(x) \\ &= \sum_{d = 1}^Nd^{K + 1}\mu^2(d)\sum_{x = 1}^{\lfloor\frac{N}{d}\rfloor}x^K\mu(x)\sum_{i = 1}^{\lfloor\frac{N}{dx}\rfloor}\sum_{j = 1}^{\lfloor\frac{N}{dx}\rfloor}(i + j)^K \\ &= \sum_{T = 1}^NT^K\sum_{i = 1}^{\lfloor\frac{N}{T}\rfloor} \sum_{j = 1}^{\lfloor\frac{N}{T}\rfloor}(i + j)^K \sum_{d|T}d\mu^2(d)\mu(\frac{T}{d}) \end{aligned} 原式=d=1∑Ni=1∑Nj=1∑N[gcd(i,j)=d]((i+j)Kdμ2(d))=d=1∑NdK+1μ2(d)i=1∑⌊dN⌋j=1∑⌊dN⌋ϵ(gcd(i,j))(i+j)K=d=1∑NdK+1μ2(d)i=1∑⌊dN⌋j=1∑⌊dN⌋(i+j)Kx∣gcd(i,j)∑μ(x)=d=1∑NdK+1μ2(d)x=1∑⌊dN⌋xKμ(x)i=1∑⌊dxN⌋j=1∑⌊dxN⌋(i+j)K=T=1∑NTKi=1∑⌊TN⌋j=1∑⌊TN⌋(i+j)Kd∣