用了一个多星期将这部分大致弄懂了,东西太多,有很多技巧,自己重新写了一下,记录自己的理解。内容与原文基本一致,在其基础上加上了一些我感觉比较重要的但他没有详细说明的东西。以下都是我逐字打出来的。如果有什么错误,请指出。
前置技能里面的东西需要充分理解和记忆,在后面推导过程中会多次用到前置技能里面的东西。
转载出处:
author: skywalkert
original article: http://blog.csdn.net/skywalkert/article/details/50500009
∑ k = 1 n ∑ d ∣ k d ⋅ k = ∑ k = 1 n ∑ d = 1 n k d ⋅ k ⋅ d = ∑ d = 1 n ∑ k ∣ d d ⋅ d k = ∑ d = 1 n ∑ k = 1 n d d ⋅ k ⋅ d = ∑ d = 1 n ∑ d ∣ k d ⋅ k = ∑ k = 1 n ∑ k ∣ d d ⋅ d k 上 式 为 约 数 , 倍 数 之 间 重 要 的 变 换 , 需 要 充 分 理 解 并 熟 练 运 用 。 ∣ 1 、 遇 到 [ g c d ( i , j ) = 1 ] , 考 虑 将 其 转 换 为 ∑ k ∣ g c d ( i , j ) μ ( k ) 2 、 对 于 ∑ i = 1 n ∑ j = 1 n [ g c d ( i , j ) = 1 ] = 2 ∑ i = 1 n ∑ j = 1 i [ g c d ( i , j ) = 1 ] − ∑ i = 1 n [ g c d ( i , i ) = 1 ] = ( 2 ∑ i = 1 n φ ( i ) ) − 1 3 、 ∑ i = 1 n i ∑ j = 1 n [ g c d ( i , j ) = 1 ] ⋅ j = 2 ∑ i = 1 n i ∑ j = 1 i [ g c d ( i , j ) = 1 ] ⋅ j − ∑ i = 1 n [ g c d ( i , i ) = 1 ] ⋅ i = ( 2 ∑ i = 1 n i i ⋅ φ ( i ) + [ i = 1 ] 2 ) − 1 = ( ∑ i = 1 n i 2 ⋅ φ ( i ) + [ i = 1 ] ) − 1 4 、 记 w ( n ) 为 n 的 质 因 子 的 个 数 , 则 2 w ( n ) 为 n 的 约 数 中 无 平 方 因 子 的 个 数 , 则 f ( n ) = 2 w ( n ) = ∑ d ∣ n μ 2 ( d ) 则 σ 0 ( n 2 ) = ∑ d ∣ n f ( d ) = ∑ d ∣ n ∑ k ∣ d μ 2 ( k ) , 附 个 表 ∑ i = 1 10 σ ( i 2 ) 5 、 n 以 内 非 完 全 平 方 数 的 个 数 g ( n ) = ∑ i = 1 n μ 2 ( i ) = ∑ i = 1 n μ ( i ) ⋅ ⌊ n i 2 ⌋ 6 、 ∑ d ∣ n ∑ i n d = ∑ d ∣ n ∑ i d , 且 d ∣ n 可 以 用 埃 筛 预 处 理 , i 为 d , j 为 n 。 7 、 σ 0 ( i ⋅ j ) = ∑ d ∣ i ⋅ j = ∑ x ∣ i ∑ y ∣ j [ g c d ( i , j ) = 1 ] , σ 1 ( i ⋅ j ) = ∑ d ∣ i ⋅ j d = ∑ x ∣ i ∑ y ∣ j y ⋅ n x [ g c d ( i , j ) = 1 ] \sum_{k=1}^n\sum_{d|k}d\cdot k=\sum_{k=1}^n\sum_{d=1}^{\frac nk}d\cdot k\cdot d=\sum_{d=1}^n\sum_{k|d}d\cdot \frac dk=\sum_{d=1}^n\sum_{k=1}^{\frac nd}d\cdot k\cdot d=\sum_{d=1}^n\sum_{d|k}d\cdot k=\sum_{k=1}^n\sum_{k|d} d\cdot\frac dk\\ 上式为约数,倍数之间重要的变换,需要充分理解并熟练运用。\\ |\\ \\1、遇到[gcd(i,j)=1],考虑将其转换为\sum_{k|gcd(i,j)}\mu(k)\\ 2、对于\sum_{i=1}^n\sum_{j=1}^n[gcd(i,j)=1]=2\sum_{i=1}^n\sum_{j=1}^i[gcd(i,j)=1]-\sum_{i=1}^n[gcd(i,i)=1]=\big(2\sum_{i=1}^n\varphi(i)\big)-1\\ 3、\sum_{i=1}^{n}i\sum_{j=1}^{n}[gcd(i,j)=1]\cdot j=2\sum_{i=1}^{n}i\sum_{j=1}^i[gcd(i,j)=1]\cdot j-\sum_{i=1}^n[gcd(i,i)=1]\cdot i\\ =\bigg(2\sum_{i=1}^ni\frac{i\cdot\varphi(i)+[i=1]}{2}\bigg)-1=\bigg(\sum_{i=1}^ni^2\cdot\varphi(i)+[i=1]\bigg)-1\\ 4、记w(n)为n的质因子的个数,则2^{w(n)}为n的约数中无平方因子的个数,则f(n)=2^{w(n)}=\sum_{d|n}\mu^2(d)\\ 则\sigma_0(n^2)=\sum_{d|n}f(d)=\sum_{d|n}\sum_{k|d}\mu^2(k)^,附个表\sum_{i=1}^{10}\sigma(i^2)\\ 5、n以内非完全平方数的个数g(n)=\sum_{i=1}^n\mu^2(i)=\sum_{i=1}^{\sqrt{n}}\mu(i)\cdot\lfloor\frac n{i^2}\rfloor\\ 6、\sum_{d|n}\sum_i^{\frac{n}{d}}=\sum_{d|n}\sum_i^{d},且d|n可以用埃筛预处理,i为d,j为n。\\ 7、\sigma_0(i\cdot j)=\sum_{d|i\cdot j}=\sum_{x|i}\sum_{y|j}[gcd(i,j)=1],\sigma_1(i\cdot j)=\sum_{d|i\cdot j}d=\sum_{x|i}\sum_{y|j}\frac{y\cdot n}{x}[gcd(i,j)=1] k=1∑nd∣k∑d⋅k=k=1∑nd=1∑knd⋅k⋅d=d=1∑nk∣d∑d⋅kd=d=1∑nk=1∑dnd⋅k⋅d=d=1∑nd∣k∑d⋅k=k=1∑nk∣d∑d⋅kd上式为约数,倍数之间重要的变换,需要充分理解并熟练运用。∣1、遇到[gcd(i,j)=1],考虑将其转换为k∣gcd(i,j)∑μ(k)2、对于i=1∑nj=1∑n[gcd(i,j)=1]=2i=1∑nj=1∑i[gcd(i,j)=1]−i=1∑n[gcd(i,i)=1]=(2i=1∑nφ(i))−13、i=1∑nij=1∑n[gcd(i,j)=1]⋅j=2i=1∑nij=1∑i[gcd(i,j)=1]⋅j−i=1∑n[gcd(i,i)=1]⋅i=(2i=1∑ni2i⋅φ(i)+[i=1])−1=(i=1∑ni2⋅φ(i)+[i=1])−14、记w(n)为n的质因子的个数,则2w(n)为n的约数中无平方因子的个数,则f(n)=2w(n)=d∣n∑μ2(d)则σ0(n2)=d∣n∑f(d)=d∣n∑k∣d∑μ2(k),附个表i=1∑10σ(i2)5、n以内非完全平方数的个数g(n)=i=1∑nμ2(i)=i=1∑nμ(i)⋅⌊i2n⌋6、d∣n∑i∑dn=d∣n∑i∑d,且d∣n可以用埃筛预处理,i为d,j为n。7、σ0(i⋅j)=d∣i⋅j∑=x∣i∑y∣j∑[gcd(i,j)=1],σ1(i⋅j)=d∣i⋅j∑d=x∣i∑y∣j∑xy⋅n[gcd(i,j)=1]
证明7:
令 x = i ⋅ j , 则 由 唯 一 分 解 定 理 得 : x = p 1 e 1 p 2 e 2 … p n e k , 则 x 的 约 数 个 数 为 ( e 1 + 1 ) ⋅ ( e 2 + 1 ) … ( e k + 1 ) 考 虑 任 意 一 个 质 数 p 对 答 案 的 贡 献 。 假 设 质 数 p 在 i 的 质 因 数 中 出 现 了 a 次 在 j 的 质 因 数 中 出 现 了 b 次 , 那 么 p 对 答 案 的 贡 献 就 为 a + b + 1 。 而 a + b + 1 = ∑ x = 0 a ∑ y = 0 b [ g c d ( p x , p y ) = 1 ] , 等 效 与 以 下 矩 阵 : a = 2 , b = 3 ( 1 1 1 1 1 p p p 1 p p 2 p 2 ) 相 当 于 对 于 素 数 p 来 说 , 不 同 时 出 现 于 两 个 数 的 质 因 数 中 。 由 唯 一 分 解 定 理 又 得 : i = p 1 e 1 p 2 e 2 p 3 e 3 . . . p k e k , j = p 1 q 1 p 2 q 2 p 3 q 3 . . . p k q k , 根 据 乘 法 原 理 可 得 : σ 0 ( i ⋅ j ) = ∑ x 1 = 0 e 1 ∑ y 1 = 0 q 1 [ ( p 1 x 1 , p 1 y 1 ) = 1 ] ∑ x 2 = 0 e 2 ∑ y 2 = 0 q 2 [ ( p 2 x 2 , p 2 y 2 ) = 1 ] . . . ∑ x n = 0 e n ∑ y n = 0 q n [ ( p n x n , p n y n ) = 1 ] 将 其 合 并 得 : σ 0 ( i ⋅ j ) = ∑ x ∣ i ∑ y ∣ j [ g c d ( x , y ) = 1 ] 对 于 任 意 一 个 素 数 p 来 说 , 它 们 不 同 时 出 现 于 x , y 中 , 就 相 当 于 g c d ( x , y ) = 1 。 令x=i\cdot j,则由唯一分解定理得:x=p_1^{e_1}p_2^{e_2}\dots p_n^{e_k},则x的约数个数为(e_1+1)\cdot(e_2+1)\dots(e_k+1)\\ 考虑任意一个质数p对答案的贡献。假设质数p在i的质因数中出现了a次\\在j的质因数中出现了b次, 那么p对答案\\的贡献就为a+b+1。而a+b+1=\sum_{x=0}^a\sum_{y=0}^b[gcd(p^x,p^y)=1],等效与以下矩阵:a=2,b=3\\ \left(\begin{matrix} 1&1&1&1\\ 1&p&p&p\\ 1&p&p^2&p^2 \end{matrix}\right)\\ 相当于对于素数p来说,不同时出现于两个数的质因数中。 \\ 由唯一分解定理又得:i=p_1^{e_1}p_2^{e_2}p_3^{e_3}...p_k^{e_k},j=p_1^{q_1}p_2^{q_2}p_3^{q_3}...p_k^{q_k},根据乘法原理可得:\\ \sigma_0(i\cdot j)=\sum_{x_1=0}^{e_1}\sum_{y_1=0}^{q_1}[(p_1^{x_1},p_1^{y_1})=1]\sum_{x_2=0}^{e_2}\sum_{y_2=0}^{q_2}[(p_2^{x_2},p_2^{y_2})=1]...\sum_{x_n=0}^{e_n}\sum_{y_n=0}^{q_n}[(p_n^{x_n},p_n^{y_n})=1]\\将其合并得:\sigma_0(i\cdot j)=\sum_{x|i}\sum_{y|j}[gcd(x,y)=1]\\ 对于任意一个素数p来说,它们不同时出现于x,y中,就相当于gcd(x,y)=1。 令x=i⋅j,则由唯一分解定理得:x=p1e1p2e2…pnek,则x的约数个数为(e1+1)⋅(e2+1)…(ek+1)考虑任意一个质数p对答案的贡献。假设质数p在i的质因数中出现了a次在j的质因数中出现了b次,那么p对答案的贡献就为a+b+1。而a+b+1=x=0∑ay=0∑b[gcd(px,py)=1],等效与以下矩阵:a=2,b=3⎝⎛1111pp1pp21pp2⎠⎞相当于对于素数p来说,不同时出现于两个数的质因数中。由唯一分解定理又得:i=p1e1p2e2p3e3...pkek,j=p1q1p2q2p3q3...pkqk,根据乘法原理可得:σ0(i⋅j)=x1=0∑e1y1=0∑q1[(p1x1,p1y1)=1]x2=0∑e2y2=0∑q2[(p2x2,p2y2)=1]...xn=0∑enyn=0∑qn[(pnxn,pnyn)=1]将其合并得:σ0(i⋅j)=x∣i∑y∣j∑[gcd(x,y)=1]对于任意一个素数p来说,它们不同时出现于x,y中,就相当于gcd(x,y)=1。
[摘自]: < https://blog.csdn.net/ab_ever/article/details/76737617 >
σ 1 ( n ⋅ m ) = ∑ a ∣ n ⋅ m a = ∑ k = 1 r ∑ c ∣ n m P k x k + y k ∑ a ∣ P k x k + y k a c = ∑ a 1 ∣ P 1 x 1 + y 1 ∑ a 2 ∣ P 2 x 2 + y 2 . . . ∑ a r ∣ P r x r + y r ( ∏ i = 1 r a i ) 对 于 某 个 素 数 p k : ∑ a ∣ P k x k + y k a = ∑ a ∣ P k x k ∑ b ∣ P k y k [ g c d ( a , b ) = 1 ] P k x k b a 所 以 : σ 1 ( n ⋅ m ) = ∑ a ∣ n ∑ b ∣ m n ⋅ b a [ g c d ( a , b ) = 1 ] \sigma_1(n\cdot m)=\sum_{a|n\cdot m}a\\=\sum_{k=1}^r\sum_{c\big|\frac{nm}{P_k^{x_k+y_k}}}\sum_{a|P_k^{x_k+y_k}}ac\\=\sum_{a_1\big|P_1^{x_1+y_1}}\sum_{a_2\big|P_2^{x_2+y_2}}...\sum_{a_r\big|P_r^{x_r+y_r}}\Big(\prod_{i=1}^ra_i\Big) \\对于某个素数p_k: \sum_{a\big | P_k^{x_k+y_k}}a=\sum_{a|P_{k}^{x_k}}\sum_{b|P_{k}^{y_k}}[ gcd(a,b)=1]\frac{P_{k}^{x_k}b}{a}\\所以:\sigma_1(n\cdot m)=\sum_{a|n}\sum_{b|m}\frac{n\cdot b}{a}[gcd(a,b)=1] σ1(n⋅m)=a∣n⋅m∑a=k=1∑rc∣∣Pkxk+yknm∑a∣Pkxk+yk∑ac=a1∣∣P1x1+y1∑a2∣∣P2x2+y2∑...ar∣∣Prxr+yr∑(i=1∏rai)对于某个素数pk:a∣∣Pkxk+yk∑a=a∣Pkxk∑b∣Pkyk∑[gcd(a,b)=1]aPkxkb所以:σ1(n⋅m)=a∣n∑b∣m∑an⋅b[gcd(a,b)=1]
2、
10
1 1 1 1 1 1 1 1 1 1
1 0 1 0 1 0 1 0 1 0
1 1 0 1 1 0 1 1 0 1
1 0 1 0 1 0 1 0 1 0
1 1 1 1 0 1 1 1 1 0
1 0 0 0 1 0 1 0 0 0
1 1 1 1 1 1 0 1 1 1
1 0 1 0 1 0 1 0 1 0
1 1 0 1 1 0 1 1 0 1
1 0 1 0 0 0 1 0 1 0
4、
1 1
1 2 4 1 1 2
1 3 9 1 1 3
1 2 4 8 16 1 1 2 1 2
1 5 25 1 1 5
1 2 3 4 6 9 12 18 36 1 1 2 1 3 1 2 3 6
1 7 49 1 1 7
1 2 4 8 16 32 64 1 1 2 1 2 1 2
1 3 9 27 81 1 1 3 1 3
1 2 4 5 10 20 25 50 100 1 1 2 1 5 1 2 5 10
48 48
这种黑科技在低于线性时间的复杂度下解决一类积性函数的前缀和问题。
首先看一个简单的例子,求前 n n n个正整数的约数之和,即 ∑ i = 1 n σ ( i ) ∑^n_{i=1}σ(i) ∑i=1nσ(i),其中 n ≤ 1 0 12 n≤10^{12} n≤1012。显然不能直接做了,但是我们可以推导一番:
方 法 1 : ∑ i = 1 n σ ( i ) = ∑ i = 1 n ∑ d ∣ i d = ∑ d = 1 n d ∑ i = 1 n d = ∑ i = 1 n i ⋅ ⌊ n i ⌋ 方 法 2 : ∑ i = 1 n σ ( i ) = ∑ i = 1 n ∑ d ∣ i d = ∑ i = 1 n ∑ d = 1 n i d = ∑ i = 1 n ⌊ n i ⌋ ⋅ ( ⌊ n i ⌋ + 1 ) 2 方法1:\sum_{i=1}^n\sigma(i)=\sum_{i=1}^n\sum_{d|i}d=\sum_{d=1}^nd\sum_{i=1}^\frac nd=\sum_{i=1}^ni\cdot\lfloor\frac ni\rfloor\\ 方法2:\sum_{i=1}^n\sigma(i)=\sum_{i=1}^n\sum_{d|i}d=\sum_{i=1}^n\sum_{d=1}^{\frac ni}d=\sum_{i=1}^n\frac{\lfloor\frac ni\rfloor\cdot (\lfloor\frac ni\rfloor+1)}{2} 方法1:i=1∑nσ(i)=i=1∑nd∣i∑d=d=1∑ndi=1∑dn=i=1∑ni⋅⌊in⌋方法2:i=1∑nσ(i)=i=1∑nd∣i∑d=i=1∑nd=1∑ind=i=1∑n2⌊in⌋⋅(⌊in⌋+1)
当 i ≤ n i\le \sqrt{n} i≤n时, ⌊ n i ⌋ \lfloor\frac ni \rfloor ⌊in⌋显然只有 O ( n ) O(\sqrt{n}) O(n)个取值;当 i ≥ n i\ge\sqrt{n} i≥n同样;对于固定的 ⌊ n i ⌋ \lfloor\frac ni\rfloor ⌊in⌋, i i i的取值是一段连续的区间,这段区间是 [ ⌊ n ⌊ n i ⌋ + 1 ⌋ + 1 , ⌊ n ⌊ n i ⌋ ⌋ ] [\bigg\lfloor\frac{n}{\lfloor\frac ni \rfloor+1}\bigg\rfloor+1,\bigg\lfloor\frac{n}{\lfloor\frac ni \rfloor}\bigg\rfloor ] [⌊⌊in⌋+1n⌋+1,⌊⌊in⌋n⌋],因此可以 O ( n ) O(\sqrt{n}) O(n)求得。
例 n = 10 n=10 n=10时, ∑ i = 1 n σ ( i ) = 1 × 10 + 2 × 5 + 3 × 3 + 4 × 2 + 5 × 2 + 6 × 1 + 7 × 1 + 8 × 1 + 9 × 1 + 10 × 1 \sum_{i=1}^n\sigma(i)=1\times10+2\times5+3\times3+4\times2+5\times2+6\times1+7\times1+8\times1+9\times1+10\times1 ∑i=1nσ(i)=1×10+2×5+3×3+4×2+5×2+6×1+7×1+8×1+9×1+10×1,
则 ∑ i = 1 n σ ( i ) = 10 × 1 + 5 × 2 + 3 × 3 + 2 × ( 4 + 5 ) + 1 × ( 6 + 7 + 8 + 9 + 10 ) \sum_{i=1}^n\sigma(i)=10\times1+5\times2+3\times3+2\times(4+5)+1\times(6+7+8+9+10) ∑i=1nσ(i)=10×1+5×2+3×3+2×(4+5)+1×(6+7+8+9+10)。
求前n个正整数的约数个数之和也类似:
∑ i = 1 n σ 0 ( i ) = ∑ i = 1 n ∑ d ∣ n 1 = ∑ d = 1 n ∑ i = 1 n d 1 = ∑ d = 1 n ⌊ n d ⌋ \sum_{i=1}^n\sigma_0(i)=\sum_{i=1}^n\sum_{d|n}1=\sum_{d=1}^n\sum_{i=1}^\frac nd1=\sum_{d=1}^n\lfloor\frac nd\rfloor i=1∑nσ0(i)=i=1∑nd∣n∑1=d=1∑ni=1∑dn1=d=1∑n⌊dn⌋
现在我们来加大一点难度,(51Nod 1239)求前 n n n个正整数的欧拉函数之和,即 Φ ( n ) = ∑ i = 1 n φ ( i ) \Phi(n)=∑^n_{i=1}φ(i) Φ(n)=∑i=1nφ(i),其中 n ≤ 1 0 11 n≤10^{11} n≤1011。
对于 φ ( i ) \varphi(i) φ(i),我们知道 ∑ d ∣ n φ ( d ) = n \sum_{d|n}\varphi(d)=n ∑d∣nφ(d)=n,即 ( φ ∗ I ) ( n ) = ∑ d ∣ n φ ( d ) I ( n d ) = ∑ d ∣ n φ ( d ) = n (\varphi*I)(n)=\sum_{d|n}\varphi(d)I(\frac nd)=\sum_{d|n}\varphi(d)=n (φ∗I)(n)=∑d∣nφ(d)I(dn)=∑d∣nφ(d)=n,则
n ⋅ ( n + 1 ) 2 = ∑ i = 1 n i = ∑ i = 1 n ( φ ∗ I ) ( i ) = ∑ i = 1 n ∑ d ∣ n σ ( d ) = ∑ i = 1 n ∑ d = 1 n i σ ( d ) = ∑ i = 1 n Φ ( ⌊ n i ⌋ ) \frac{n\cdot(n+1)}{2}=\sum_{i=1}^ni=\sum_{i=1}^n(\varphi*I)(i)=\sum_{i=1}^n\sum_{d|n}\sigma(d)=\sum_{i=1}^n\sum_{d=1}^{\frac ni}\sigma(d)=\sum_{i=1}^n\Phi(\lfloor\frac ni\rfloor) 2n⋅(n+1)=i=1∑ni=i=1∑n(φ∗I)(i)=i=1∑nd∣n∑σ(d)=i=1∑nd=1∑inσ(d)=i=1∑nΦ(⌊in⌋)
对于 ∑ i = 1 n Φ ( ⌊ n i ⌋ ) \sum_{i=1}^n\Phi(\lfloor\frac ni\rfloor) ∑i=1nΦ(⌊in⌋),如果 n = 1 n=1 n=1则即是我们要求的 Φ ( n ) \Phi(n) Φ(n)。
则 Φ ( n ) = ∑ i = 1 n Φ ( ⌊ n i ⌋ ) − ∑ i = 2 n Φ ( ⌊ n i ⌋ ) = n ⋅ ( n + 1 ) 2 − ∑ i = 2 n Φ ( ⌊ n i ⌋ ) 则\Phi(n)=\sum_{i=1}^n\Phi(\lfloor\frac ni\rfloor)-\sum_{i=2}^n\Phi(\lfloor\frac ni\rfloor)=\frac{n\cdot (n+1)}2-\sum_{i=2}^n\Phi(\lfloor \frac ni\rfloor) 则Φ(n)=i=1∑nΦ(⌊in⌋)−i=2∑nΦ(⌊in⌋)=2n⋅(n+1)−i=2∑nΦ(⌊in⌋)
由于 Φ ( n ) \Phi(n) Φ(n)是一个积性函数的前缀和,所以筛法也可以预处理一部分。所以总复杂度为 O ( n 2 3 ) O(n^{\frac 23}) O(n32)。
如果能通过狄利克雷卷积构造一个更好计算前缀和的函数,且用于卷积的另一个函数也易计算,则可以简化计算过程。例如上题就是利用了 φ ∗ I = i d φ∗I=id φ∗I=id的性质,但一定注意,不是所有的这一类题都只用配个恒等函数 I I I
就可以轻松完事的,有时需要更细致的观察。
(51Nod 1244)定义梅滕斯函数 M ( n ) = ∑ i = 1 n μ ( i ) M(n)=∑^n_{i=1}μ(i) M(n)=∑i=1nμ(i),给定正整数 n n n,计算 M ( n ) M(n) M(n),其中 n ≤ 1 0 11 n≤10^{11} n≤1011。可以利用 μ ∗ I = e \mu*I=e μ∗I=e的性质简化。
对于 μ ( i ) \mu(i) μ(i),有 ∑ d ∣ n μ ( d ) = [ n = 1 ] \sum_{d|n}\mu(d)=[n=1] ∑d∣nμ(d)=[n=1],则 ( μ ∗ I ) ( n ) = ∑ d ∣ n μ ( d ) I ( n d ) = [ n = 1 ] (\mu*I)(n)=\sum_{d|n}\mu(d)I(\frac nd)=[n=1] (μ∗I)(n)=∑d∣nμ(d)I(dn)=[n=1],则
1 = ∑ i = 1 n [ i = 1 ] = ∑ i = 1 n ( μ ∗ I ) ( i ) = ∑ i = 1 n ∑ d ∣ n μ ( d ) = ∑ i = 1 n ∑ d = 1 n i μ ( d ) = ∑ i = 1 n M ( ⌊ n i ⌋ ) 同 理 得 : M ( n ) = ∑ i = 1 n M ( ⌊ n i ⌋ ) − ∑ i = 2 n M ( ⌊ n i ⌋ ) = 1 − ∑ i = 2 n M ( ⌊ n i ⌋ ) 1=\sum_{i=1}^n[i=1]=\sum_{i=1}^n(\mu*I)(i)=\sum_{i=1}^n\sum_{d|n}\mu(d)=\sum_{i=1}^n\sum_{d=1}^{\frac ni}\mu(d)=\sum_{i=1}^nM(\lfloor\frac ni \rfloor)\\ 同理得: M(n)=\sum_{i=1}^nM(\lfloor\frac ni \rfloor)-\sum_{i=2}^nM(\lfloor \frac ni\rfloor)=1-\sum_{i=2}^nM(\lfloor\frac ni \rfloor) 1=i=1∑n[i=1]=i=1∑n(μ∗I)(i)=i=1∑nd∣n∑μ(d)=i=1∑nd=1∑inμ(d)=i=1∑nM(⌊in⌋)同理得:M(n)=i=1∑nM(⌊in⌋)−i=2∑nM(⌊in⌋)=1−i=2∑nM(⌊in⌋)
同理复杂度为 O ( n 2 3 ) O(n^{\frac 23}) O(n32)。
(51Nod 1237)定义最大公约数之和的函数 G ( n ) = ∑ i = 1 n ∑ j = 1 n g c d ( i , j ) G(n)=\sum_{i=1}^n\sum_{j=1}^ngcd(i,j) G(n)=∑i=1n∑j=1ngcd(i,j),给定正整数n,计算 G ( n ) G(n) G(n),其中 n ≤ 1 0 10 n\le10^{10} n≤1010。
方 法 1 : G ( n ) = ∑ i = 1 n ∑ j = 1 n g c d ( i , j ) = ∑ i = 1 n ∑ j = 1 n ∑ d = 1 n [ g c d ( i , j ) = d ] ⋅ d = ∑ d = 1 n ∑ i = 1 n d ∑ j = 1 n d [ g c d ( i , j ) = 1 ] ⋅ d 因 为 [ g c d ( i , j ) = 1 ] = ∑ k ∣ g c d ( i , j ) μ ( k ) 则 G ( n ) = ∑ d = 1 n ∑ i = 1 n d ∑ j = 1 n d ∑ k ∣ g c d ( i , j ) μ ( k ) ⋅ d = ∑ k = 1 n μ ( k ) ∑ d = 1 n d ∑ i = 1 n k d ∑ j = 1 n k d 1 = ∑ k = 1 n μ ( k ) ∑ d = 1 n d ⋅ ⌊ n k d ⌋ 2 令 T = n k , 则 得 ∑ T = 1 n ⌊ n T ⌋ 2 ∑ d ∣ T d ⋅ μ ( T d ) 再 由 n = i d ( n ) = ∑ d ∣ n φ ( d ) , 则 由 莫 比 乌 斯 反 演 得 φ ( n ) = ∑ d ∣ n i d ( d ) ⋅ μ ( n d ) = ∑ d ∣ n d ⋅ μ ( n d ) 则 得 ∑ T = 1 n ⌊ n T ⌋ 2 φ ( T ) , 剩 下 就 是 求 欧 拉 函 数 前 缀 和 了 。 方法1:G(n)=\sum_{i=1}^n\sum_{j=1}^ngcd(i,j)=\sum_{i=1}^n\sum_{j=1}^n\sum_{d=1}^n[gcd(i,j)=d]\cdot d=\sum_{d=1}^n\sum_{i=1}^{\frac nd}\sum_{j=1}^{\frac nd}[gcd(i,j)=1]\cdot d\\ 因为[gcd(i,j)=1]=\sum_{k|gcd(i,j)}\mu(k) \\ 则G(n)=\sum_{d=1}^n\sum_{i=1}^{\frac nd}\sum_{j=1}^{\frac nd}\sum_{k|gcd(i,j)}\mu(k)\cdot d=\sum_{k=1}^n\mu(k)\sum_{d=1}^{n}d\sum_{i=1}^{\frac n{kd}}\sum_{j=1}^{\frac n{kd}}1=\sum_{k=1}^n\mu(k)\sum_{d=1}^{ n}d\cdot\lfloor\frac n{kd}\rfloor^2\\ 令T=nk, 则得\sum_{T=1}^n\lfloor\frac n{T}\rfloor ^2\sum_{d|T}d\cdot\mu(\frac Td)\\ 再由n=id(n)=\sum_{d|n}\varphi(d), 则由莫比乌斯反演得\varphi(n)=\sum_{d|n}id(d)\cdot\mu(\frac nd)=\sum_{d|n}d\cdot\mu(\frac nd)\\ 则得\sum_{T=1}^n\lfloor\frac{n}{T}\rfloor^2\varphi(T),剩下就是求欧拉函数前缀和了。 方法1:G(n)=i=1∑nj=1∑ngcd(i,j)=i=1∑nj=1∑nd=1∑n[gcd(i,j)=d]⋅d=d=1∑ni=1∑dnj=1∑dn[gcd(i,j)=1]⋅d因为[gcd(i,j)=1]=k∣gcd(i,j)∑μ(k)则G(n)=d=1∑ni=1∑dnj=1∑dnk∣gcd(i,j)∑μ(k)⋅d=k=1∑nμ(k)d=1∑ndi=1∑kdnj=1∑kdn1=k=1∑nμ(k)d=1∑nd⋅⌊kdn⌋2令T=nk,则得T=1∑n⌊Tn⌋2d∣T∑d⋅μ(dT)再由n=id(n)=d∣n∑φ(d),则由莫比乌斯反演得φ(n)=d∣n∑id(d)⋅μ(dn)=d∣n∑d⋅μ(dn)则得T=1∑n⌊Tn⌋2φ(T),剩下就是求欧拉函数前缀和了。
方 法 2 : G ( n ) = ∑ i = 1 n ∑ j = 1 n g c d ( i , j ) = ∑ i = 1 n ∑ j = 1 n ∑ d = 1 n [ g c d ( i , j ) = d ] ⋅ d = ∑ d = 1 n ∑ i = 1 n d ∑ j = 1 n d [ g c d ( i , j ) = 1 ] ⋅ d ∑ d = 1 n d ∑ i = 1 n d ∑ j = 1 n d [ g c d ( i , j ) = 1 ] = ∑ d = 1 n d ( ( 2 ∑ i = 1 n d φ ( i ) ) − 1 ) , 则 剩 下 就 是 求 欧 拉 函 数 前 缀 和 了 。 对 于 ∑ i = 1 n ∑ j = 1 n [ g c d ( i , j ) = 1 ] = 2 ∑ i = 1 n ∑ j = 1 i [ g c d ( i , j ) = 1 ] − ∑ i = 1 n [ g c d ( i , i ) = 1 ] = ( 2 ∑ i = 1 n φ ( i ) ) − 1 方法2:G(n)=\sum_{i=1}^n\sum_{j=1}^ngcd(i,j)=\sum_{i=1}^n\sum_{j=1}^n\sum_{d=1}^n[gcd(i,j)=d]\cdot d=\sum_{d=1}^n\sum_{i=1}^{\frac nd}\sum_{j=1}^{\frac nd}[gcd(i,j)=1]\cdot d\\ \sum_{d=1}^nd\sum_{i=1}^{\frac nd}\sum_{j=1}^{\frac nd}[gcd(i,j)=1]=\sum_{d=1}^nd\bigg(\big(2\sum_{i=1}^{\frac nd}\varphi(i)\big)-1\bigg),则剩下就是求欧拉函数前缀和了。\\ 对于\sum_{i=1}^n\sum_{j=1}^n[gcd(i,j)=1]=2\sum_{i=1}^n\sum_{j=1}^i[gcd(i,j)=1]-\sum_{i=1}^n[gcd(i,i)=1]=\big(2\sum_{i=1}^n\varphi(i)\big)-1 方法2:G(n)=i=1∑nj=1∑ngcd(i,j)=i=1∑nj=1∑nd=1∑n[gcd(i,j)=d]⋅d=d=1∑ni=1∑dnj=1∑dn[gcd(i,j)=1]⋅dd=1∑ndi=1∑dnj=1∑dn[gcd(i,j)=1]=d=1∑nd((2i=1∑dnφ(i))−1),则剩下就是求欧拉函数前缀和了。对于i=1∑nj=1∑n[gcd(i,j)=1]=2i=1∑nj=1∑i[gcd(i,j)=1]−i=1∑n[gcd(i,i)=1]=(2i=1∑nφ(i))−1
(51Nod 1238)定义最小公倍数之和的函数 L ( n ) = ∑ i = 1 n ∑ j = 1 n l c m ( i , j ) L(n)=\sum_{i=1}^n\sum_{j=1}^nlcm(i,j) L(n)=∑i=1n∑j=1nlcm(i,j),给定正整数n,计算 L ( n ) L(n) L(n),其中 n ≤ 1 0 10 n\le10^{10} n≤1010
方 法 1 : L ( n ) = ∑ i = 1 n ∑ j = 1 n l c m ( i , j ) = ∑ i = 1 n ∑ j = 1 n i ⋅ j g c d ( i , j ) = ∑ i = 1 n ∑ j = 1 n ∑ d = 1 n [ g c d ( i , j ) = d ] i ⋅ j d = ∑ d = 1 n ∑ i = 1 n d ∑ j = 1 n d [ g c d ( i , j ) = 1 ] i ⋅ j ⋅ d = ∑ d = 1 n ∑ i = 1 n d ∑ j = 1 n d ∑ k ∣ g c d ( i , j ) μ ( k ) ⋅ i ⋅ j ⋅ d = ∑ d = 1 n ∑ k = 1 n d ∑ i = 1 n d k ∑ j = 1 n d k i ⋅ j ⋅ d ⋅ μ ( k ) ⋅ k 2 = ∑ d = 1 n d ∑ k = 1 n d μ ( k ) ⋅ k 2 ∑ i = 1 n d k i ∑ j = 1 n d k j = ∑ d = 1 n d ∑ k = 1 n d μ ( k ) ⋅ k 2 ⋅ ( ⌊ n d k ⌋ + 1 ) 2 ⋅ ⌊ n d k ⌋ 2 4 然 后 就 是 求 μ ( k ) ⋅ k 2 的 前 缀 和 , 但 是 这 个 方 法 时 间 复 杂 度 过 高 好 像 为 O ( n ) , 此 题 不 可 行 。 后 面 有 一 道 题 要 用 此 方 法 。 方法1:L(n)=\sum_{i=1}^n\sum_{j=1}^nlcm(i,j)=\sum_{i=1}^n\sum_{j=1}^n\frac{i\cdot j}{gcd(i,j)}=\sum_{i=1}^n\sum_{j=1}^n\sum_{d=1}^n[gcd(i,j)=d]\frac{i\cdot j}{d}\\ =\sum_{d=1}^n\sum_{i=1}^{\frac nd}\sum_{j=1}^{\frac nd}[gcd(i,j)=1]i\cdot j\cdot d=\sum_{d=1}^n\sum_{i=1}^{\frac nd}\sum_{j=1}^{\frac nd}\sum_{k|gcd(i,j)}\mu(k)\cdot i\cdot j\cdot d=\sum_{d=1}^n\sum_{k=1}^{\frac nd}\sum_{i=1}^{\frac {n}{dk}}\sum_{j=1}^{\frac{n}{dk}}i\cdot j\cdot d\cdot\mu(k)\cdot k^2\\ =\sum_{d=1}^nd\sum_{k=1}^{\frac nd}\mu(k)\cdot k^2\sum_{i=1}^{\frac {n}{dk}}i\sum_{j=1}^{\frac{n}{dk}}j=\sum_{d=1}^nd\sum_{k=1}^{\frac nd}\mu(k)\cdot k^2\cdot\frac{(\lfloor\frac n{dk}\rfloor+1)^2\cdot \lfloor\frac n{dk}\rfloor^2}{4}\\ 然后就是求\mu(k)\cdot k^2的前缀和,但是这个方法时间复杂度过高好像为O(n),此题不可行。后面有一道题要用此方法。 方法1:L(n)=i=1∑nj=1∑nlcm(i,j)=i=1∑nj=1∑ngcd(i,j)i⋅j=i=1∑nj=1∑nd=1∑n[gcd(i,j)=d]di⋅j=d=1∑ni=1∑dnj=1∑dn[gcd(i,j)=1]i⋅j⋅d=d=1∑ni=1∑dnj=1∑dnk∣gcd(i,j)∑μ(k)⋅i⋅j⋅d=d=1∑nk=1∑dni=1∑dknj=1∑dkni⋅j⋅d⋅μ(k)⋅k2=d=1∑ndk=1∑dnμ(k)⋅k2i=1∑dknij=1∑dknj=d=1∑ndk=1∑dnμ(k)⋅k2⋅4(⌊dkn⌋+1)2⋅⌊dkn⌋2然后就是求μ(k)⋅k2的前缀和,但是这个方法时间复杂度过高好像为O(n),此题不可行。后面有一道题要用此方法。
方 法 2 : L ( n ) = ∑ i = 1 n ∑ j = 1 n l c m ( i , j ) = ∑ i = 1 n ∑ j = 1 n i ⋅ j g c d ( i , j ) = ∑ i = 1 n ∑ j = 1 n ∑ d = 1 n [ g c d ( i , j ) = d ] i ⋅ j d = ∑ d = 1 n d ∑ i = 1 n d ∑ j = 1 n d [ g c d ( i , j ) = 1 ] i ⋅ j = ∑ d = 1 n d ∑ i = 1 n d i ∑ j = 1 n d [ g c d ( i , j ) = 1 ] j 因 为 ∑ i = 1 n i ∑ j = 1 n [ g c d ( i , j ) = 1 ] ⋅ j = 2 ∑ i = 1 n i ∑ j = 1 i [ g c d ( i , j ) = 1 ] ⋅ j − ∑ i = 1 n [ g c d ( i , i ) = 1 ] ⋅ i = ( 2 ∑ i = 1 n i i ⋅ φ ( i ) + [ i = 1 ] 2 ) − 1 = ( ∑ i = 1 n i 2 ⋅ φ ( i ) + [ i = 1 ] ) − 1 则 得 ∑ d = 1 n d ( ( ∑ i = 1 n d i 2 ⋅ φ ( i ) + [ i = 1 ] ) − 1 ) = ∑ d = 1 n d ∑ i = 1 n d i 2 ⋅ φ ( i ) , 然 后 就 是 求 ϕ ( n ) = ∑ i = 1 n i 2 ⋅ φ ( i ) 。 令 f ( n ) = n 2 ⋅ φ ( n ) , 则 ∑ d ∣ n f ∗ ( i d ) 2 ( n ) = ∑ d ∣ n d 2 ⋅ φ ( d ) ⋅ ( n d ) 2 = n 2 ∑ d ∣ n φ ( d ) = n 3 则 n 2 ⋅ ( n + 1 ) 2 4 = ∑ i = 1 n i 3 = ∑ i = 1 n ( f ∗ i d 2 ) ( i ) = ∑ i = 1 n ∑ d ∣ i d 2 ⋅ φ ( d ) ⋅ ( i d ) 2 = ∑ i = 1 n i 2 ∑ d = 1 n i d 2 ⋅ φ ( d ) = ∑ i = 1 n i 2 ⋅ ϕ ( n i ) , 则 ϕ ( n ) = ∑ i = 1 n i 2 ⋅ ϕ ( n i ) − ∑ i = 2 n i 2 ⋅ ϕ ( n i ) = n 2 ⋅ ( n + 1 ) 2 4 − ∑ i = 1 n i 2 ⋅ ϕ ( n i ) 最 终 得 L ( n ) = ∑ d = 1 n d ⋅ ϕ ( n d ) 方法2:L(n)=\sum_{i=1}^n\sum_{j=1}^nlcm(i,j)=\sum_{i=1}^n\sum_{j=1}^n\frac{i\cdot j}{gcd(i,j)}=\sum_{i=1}^n\sum_{j=1}^n\sum_{d=1}^n[gcd(i,j)=d]\frac{i\cdot j}{d}\\ =\sum_{d=1}^nd\sum_{i=1}^{\frac nd}\sum_{j=1}^{\frac nd}[gcd(i,j)=1]i\cdot j=\sum_{d=1}^nd\sum_{i=1}^{\frac nd}i\sum_{j=1}^{\frac nd}[gcd(i,j)=1]j\\ 因为\sum_{i=1}^{n}i\sum_{j=1}^{n}[gcd(i,j)=1]\cdot j=2\sum_{i=1}^{n}i\sum_{j=1}^i[gcd(i,j)=1]\cdot j-\sum_{i=1}^n[gcd(i,i)=1]\cdot i\\ =\bigg(2\sum_{i=1}^ni\frac{i\cdot\varphi(i)+[i=1]}{2}\bigg)-1=\bigg(\sum_{i=1}^ni^2\cdot\varphi(i)+[i=1]\bigg)-1\\ 则得\sum_{d=1}^nd\bigg(\big(\sum_{i=1}^{\frac nd}i^2\cdot\varphi(i)+[i=1]\big)-1\bigg)=\sum_{d=1}^nd\sum_{i=1}^{\frac nd}i^2\cdot\varphi(i),然后就是求\phi(n)=\sum_{i=1}^ni^2\cdot \varphi(i)。\\ 令f(n)=n^2\cdot \varphi(n),则\sum_{d|n}f*(id)^2(n)=\sum_{d|n}d^2\cdot\varphi(d)\cdot(\frac nd)^2=n^2\sum_{d|n}\varphi(d)=n^3\\ 则\frac {n^2\cdot(n+1)^2}4=\sum_{i=1}^ni^3=\sum_{i=1}^n(f*id^2)(i)=\sum_{i=1}^n\sum_{d|i}d^2\cdot\varphi(d)\cdot(\frac id)^2=\sum_{i=1}^ni^2\sum_{d=1}^{\frac ni}d^2\cdot\varphi(d)\\=\sum_{i=1}^ni^2\cdot\phi(\frac ni),则\phi(n)=\sum_{i=1}^ni^2\cdot \phi(\frac ni)-\sum_{i=2}^ni^2\cdot \phi(\frac ni)=\frac{n^2\cdot(n+1)^2}{4}-\sum_{i=1}^ni^2\cdot\phi(\frac ni)\\ 最终得L(n)=\sum_{d=1}^nd\cdot\phi(\frac nd) 方法2:L(n)=i=1∑nj=1∑nlcm(i,j)=i=1∑nj=1∑ngcd(i,j)i⋅j=i=1∑nj=1∑nd=1∑n[gcd(i,j)=d]di⋅j=d=1∑ndi=1∑dnj=1∑dn[gcd(i,j)=1]i⋅j=d=1∑ndi=1∑dnij=1∑dn[gcd(i,j)=1]j因为i=1∑nij=1∑n[gcd(i,j)=1]⋅j=2i=1∑nij=1∑i[gcd(i,j)=1]⋅j−i=1∑n[gcd(i,i)=1]⋅i=(2i=1∑ni2i⋅φ(i)+[i=1])−1=(i=1∑ni2⋅φ(i)+[i=1])−1则得d=1∑nd((i=1∑dni2⋅φ(i)+[i=1])−1)=d=1∑ndi=1∑dni2⋅φ(i),然后就是求ϕ(n)=i=1∑ni2⋅φ(i)。令f(n)=n2⋅φ(n),则d∣n∑f∗(id)2(n)=d∣n∑d2⋅φ(d)⋅(dn)2=n2d∣n∑φ(d)=n3则4n2⋅(n+1)2=i=1∑ni3=i=1∑n(f∗id2)(i)=i=1∑nd∣i∑d2⋅φ(d)⋅(di)2=i=1∑ni2d=1∑ind2⋅φ(d)=i=1∑ni2⋅ϕ(in),则ϕ(n)=i=1∑ni2⋅ϕ(in)−i=2∑ni2⋅ϕ(in)=4n2⋅(n+1)2−i=1∑ni2⋅ϕ(in)最终得L(n)=d=1∑nd⋅ϕ(dn)
(Tsinsen A1231)定义最小公倍数之和的函数 L ( n , m ) = ∑ i = 1 n ∑ j = 1 m l c m ( i , j ) L(n,m)=\sum_{i=1}^n\sum_{j=1}^m lcm(i,j) L(n,m)=∑i=1n∑j=1mlcm(i,j),给定正整数n,m,计算 L ( n , m ) L(n,m) L(n,m),其中 n , m ≤ 1 0 7 n,m\le10^{7} n,m≤107
L ( n ) = ∑ i = 1 n ∑ j = 1 m l c m ( i , j ) = ∑ i = 1 n ∑ j = 1 m i ⋅ j g c d ( i , j ) = ∑ i = 1 n ∑ j = 1 m ∑ d = 1 n [ g c d ( i , j ) = d ] i ⋅ j d = ∑ d = 1 n ∑ i = 1 n d ∑ j = 1 m d [ g c d ( i , j ) = 1 ] i ⋅ j ⋅ d = ∑ d = 1 n ∑ i = 1 n d ∑ j = 1 m d ∑ k ∣ g c d ( i , j ) μ ( k ) ⋅ i ⋅ j ⋅ d = ∑ d = 1 n ∑ k = 1 n d ∑ i = 1 n d k ∑ j = 1 m d k i ⋅ j ⋅ d ⋅ μ ( k ) ⋅ k 2 = ∑ d = 1 n d ∑ k = 1 n d μ ( k ) ⋅ k 2 ∑ i = 1 n d k i ∑ j = 1 m d k j = ∑ d = 1 n d ∑ k = 1 n d μ ( k ) ⋅ k 2 ⋅ ⌊ n d k ⌋ ⋅ ( ⌊ n d k ⌋ + 1 ) ⋅ ⌊ m d k ⌋ ⋅ ( ⌊ m d k ⌋ + 1 ) 4 到 此 时 此 题 已 经 可 以 过 了 。 复 杂 度 为 O ( n ) . 但 其 实 还 可 以 优 化 。 将 最 后 面 的 一 部 分 记 为 s u m ( n d k , m d k ) , 则 上 式 = ∑ d = 1 n s u m ( n d , m d ) ∑ k ∣ d d k ⋅ μ ( k ) ⋅ k 2 , 再 令 f ( d ) = ∑ k ∣ d d k ⋅ μ ( k ) ⋅ k 2 , 因 为 积 性 函 数 的 约 数 和 也 是 积 性 函 数 , 所 以 f 数 组 可 以 预 处 理 出 来 。 对 于 一 个 素 数 p , 它 的 新 f 值 显 然 是 p − p 2 的 如 果 p 是 多 个 素 数 的 一 次 项 的 积 显 然 f 是 积 性 的 f ( p ) = f ( p 1 ) ∗ f ( p 2 ) ∗ f ( p 3 ) … … 如 果 p 的 唯 一 分 解 存 在 质 因 子 的 指 数 大 于 1 , 它 新 增 的 每 一 个 因 子 的 μ 值 都 是 0 , 没 有 意 义 , 只 有 统 计 时 D 变 成 了 原 来 的 j 倍 所 以 此 时 f ( p ) = f ( i ) ∗ j 前 缀 和 在 之 后 加 一 下 就 可 以 了 L(n)=\sum_{i=1}^n\sum_{j=1}^mlcm(i,j)=\sum_{i=1}^n\sum_{j=1}^m\frac{i\cdot j}{gcd(i,j)}=\sum_{i=1}^n\sum_{j=1}^m\sum_{d=1}^n[gcd(i,j)=d]\frac{i\cdot j}{d}\\ =\sum_{d=1}^n\sum_{i=1}^{\frac nd}\sum_{j=1}^{\frac md}[gcd(i,j)=1]i\cdot j\cdot d=\sum_{d=1}^n\sum_{i=1}^{\frac nd}\sum_{j=1}^{\frac md}\sum_{k|gcd(i,j)}\mu(k)\cdot i\cdot j\cdot d=\sum_{d=1}^n\sum_{k=1}^{\frac nd}\sum_{i=1}^{\frac {n}{dk}}\sum_{j=1}^{\frac{m}{dk}}i\cdot j\cdot d\cdot\mu(k)\cdot k^2\\ =\sum_{d=1}^nd\sum_{k=1}^{\frac nd}\mu(k)\cdot k^2\sum_{i=1}^{\frac {n}{dk}}i\sum_{j=1}^{\frac{m}{dk}}j=\sum_{d=1}^nd\sum_{k=1}^{\frac nd}\mu(k)\cdot k^2\cdot\frac{\lfloor\frac n{dk}\rfloor\cdot(\lfloor\frac n{dk}\rfloor+1)\cdot \lfloor\frac m{dk}\rfloor\cdot(\lfloor\frac m{dk}\rfloor+1)}{4}\\ 到此时此题已经可以过了。复杂度为O(n).但其实还可以优化。将最后面的一部分记为sum(\frac n{dk},\frac m{dk}),\\ 则上式=\sum_{d=1}^nsum(\frac nd,\frac md)\sum_{k|d}\frac dk\cdot\mu(k)\cdot k^2,再令f(d)=\sum_{k|d}\frac dk\cdot\mu(k)\cdot k^2,\\因为积性函数的约数和也是积性函数,所以f数组可以预处理出来。对于一个素数p,它的新 f 值显然是 p - p^2 的\\ 如果 p 是多个素数的一次项的积\\ 显然 f 是积性的 f( p ) = f( p1 ) * f( p2 ) * f( p3 )……\\ 如果 p 的唯一分解存在质因子的\\指数大于1,它新增的每一个因子的 μ 值都是0,没有意义,只有统计时D变成了原来的 j 倍\\ 所以 此时f( p ) = f( i ) * j\\ 前缀和在之后加一下就可以了\\ L(n)=i=1∑nj=1∑mlcm(i,j)=i=1∑nj=1∑mgcd(i,j)i⋅j=i=1∑nj=1∑md=1∑n[gcd(i,j)=d]di⋅j=d=1∑ni=1∑dnj=1∑dm[gcd(i,j)=1]i⋅j⋅d=d=1∑ni=1∑dnj=1∑dmk∣gcd(i,j)∑μ(k)⋅i⋅j⋅d=d=1∑nk=1∑dni=1∑dknj=1∑dkmi⋅j⋅d⋅μ(k)⋅k2=d=1∑ndk=1∑dnμ(k)⋅k2i=1∑dknij=1∑dkmj=d=1∑ndk=1∑dnμ(k)⋅k2⋅4⌊dkn⌋⋅(⌊dkn⌋+1)⋅⌊dkm⌋⋅(⌊dkm⌋+1)到此时此题已经可以过了。复杂度为O(n).但其实还可以优化。将最后面的一部分记为sum(dkn,dkm),则上式=d=1∑nsum(dn,dm)k∣d∑kd⋅μ(k)⋅k2,再令f(d)=k∣d∑kd⋅μ(k)⋅k2,因为积性函数的约数和也是积性函数,所以f数组可以预处理出来。对于一个素数p,它的新f值显然是p−p2的如果p是多个素数的一次项的积显然f是积性的f(p)=f(p1)∗f(p2)∗f(p3)……如果p的唯一分解存在质因子的指数大于1,它新增的每一个因子的μ值都是0,没有意义,只有统计时D变成了原来的j倍所以此时f(p)=f(i)∗j前缀和在之后加一下就可以了
不知道为什么显然的看下面(类似)
∵ ∑ d ∣ n φ ( d ) = n , 则 由 莫 比 乌 斯 反 演 得 φ ( n ) = ∑ d ∣ n μ ( d ) ⋅ n d = ∑ d ∣ n μ ( n d ) ⋅ d 由 莫 比 乌 斯 函 数 的 意 义 : μ ( n ) = { 1 若 n = 1 ( − 1 ) k 若 n 无 平 方 数 因 数 , 且 n = p 1 p 2 … p k 0 若 n 有 大 于 1 的 平 方 因 数 可 知 , 当 n 为 素 数 时 , φ ( n ) = μ ( n ) ⋅ 1 + μ ( 1 ) ⋅ n = n − 1 当 n = p 1 p 2 … p k , 即 无 平 方 数 因 数 , φ ( n ) = φ ( p 1 ) ⋅ φ ( p 2 ) ⋅ ⋯ ⋅ φ ( p k ) 当 n 中 有 平 方 数 因 数 时 , 平 方 数 因 数 对 φ ( n ) 没 有 贡 献 即 : 假 设 n = i ⋅ y , y 是 x 的 一 个 最 小 质 因 数 则 : φ ( i ) = ∑ d ∣ i μ ( d ) i d φ ( n ) = φ ( i ⋅ y ) = ∑ d ∣ ( i ⋅ y ) μ ( d ) i ⋅ y d = y ⋅ ∑ d ∣ ( i ⋅ y ) μ ( d ) i d = y ⋅ φ ( i ) 综 上 φ ( n ) = { n − 1 n ∈ p r i m e s f ( i ) ⋅ y y 2 ∣ n f ( i ) ⋅ f ( y ) y 2 ∣ ̸ n 其 中 , y 为 n 的 最 小 质 因 数 , 并 且 n = i ⋅ y \because \sum_{d|n}\varphi(d)=n,则由莫比乌斯反演得\varphi(n)=\sum_{d|n}\mu(d)\cdot\frac{n}{d}=\sum_{d|n}\mu(\frac{n}{d})\cdot d\\ 由莫比乌斯函数的意义: \mu(n)=\left\{\begin{array}{ll} 1&若n=1\\ (-1)^k&若n无平方数因数,且n=p_1p_2\dots p_k\\ 0&若n有大于1的平方因数 \end{array}\right.\\可知,当n为素数时,\varphi(n)=\mu(n)\cdot 1+\mu(1)\cdot n=n-1 \\当n=p_1p_2\dots p_k,即无平方数因数,\varphi(n)=\varphi(p_1)\cdot\varphi(p_2)\cdot \dots\cdot\varphi(p_k)\\ 当n中有平方数因数时,平方数因数对\varphi(n)没有贡献即:\\ 假设n=i\cdot y,y是x的一个最小质因数则:\varphi(i)=\sum_{d|i}\mu(d)\frac {i}{d}\\ \varphi(n)=\varphi(i\cdot y)=\sum_{d|(i\cdot y)}\mu(d)\frac {i\cdot y}{d}=y\cdot \sum_{d|(i\cdot y)}\mu(d)\frac {i}{d}=y\cdot \varphi(i)\\ \\综上\varphi(n)= \left\{\begin{matrix} n-1&n\in primes\\ f(i)\cdot y&y^2|n\\ f(i)\cdot f(y)&y^2 |\not n \end{matrix}\right.其中,y为n的最小质因数,并且n=i\cdot y ∵d∣n∑φ(d)=n,则由莫比乌斯反演得φ(n)=d∣n∑μ(d)⋅dn=d∣n∑μ(dn)