Description
求∑i=1n∑j=1nijgcd(i,,j)\sum_{i=1}^n \sum_{j=1}^n ij \gcd(i,,j)i=1∑nj=1∑nijgcd(i,,j)的值。
请将答案对P(5×108≤P≤1.1×109)P(5×10^8≤P≤1.1×10^9)P(5×108≤P≤1.1×109)取模。
Solution
∑i=1n∑j=1nijgcd(i,j)\sum_{i=1}^n \sum_{j=1}^n ij \gcd(i,j)∑i=1n∑j=1nijgcd(i,j)
=∑k=1nk∑i=1n∑j=1nij[gcd(i,j)=k]=\sum_{k=1}^n k \sum_{i=1}^n \sum_{j=1}^n ij [\gcd(i,j)=k]=∑k=1nk∑i=1n∑j=1nij[gcd(i,j)=k]
=∑k=1nk3∑i=1⌊nk⌋∑j=1⌊nk⌋ij[gcd(i,j)=1]=\sum_{k=1}^n k^3 \sum_{i=1}^{\lfloor \frac n k \rfloor} \sum_{j=1}^{\lfloor \frac n k \rfloor} ij [\gcd(i,j)=1]=∑k=1nk3∑i=1⌊kn⌋∑j=1⌊kn⌋ij[gcd(i,j)=1]
第二个∑\sum∑前面的系数为什么是k3k^3k3呢?因为,后面所有的ijijij都被减小了kkk倍(因此变成了[gcd(i,j)]=1[\gcd(i,j)]=1[gcd(i,j)]=1),以及它原来的系数kkk,所以新系数应该是k×k×k=k3k×k×k=k^3k×k×k=k3。
继续推式子:
=∑k=1nk3∑i=1⌊nk⌋∑j=1⌊nk⌋ij[gcd(i,j)=1]=\sum_{k=1}^n k^3 \sum_{i=1}^{\lfloor \frac n k \rfloor} \sum_{j=1}^{\lfloor \frac n k \rfloor} ij [\gcd(i,j)=1]=∑k=1nk3∑i=1⌊kn⌋∑j=1⌊kn⌋ij[gcd(i,j)=1]
=∑k=1nk3∑i=1⌊nk⌋i∑j=1⌊nk⌋j[gcd(i,j)=1]=\sum_{k=1}^n k^3 \sum_{i=1}^{\lfloor \frac n k \rfloor} i \sum_{j=1}^{\lfloor \frac n k \rfloor} j [\gcd(i,j)=1]=∑k=1nk3∑i=1⌊kn⌋i∑j=1⌊kn⌋j[gcd(i,j)=1]
可以发现,第三个∑\sum∑实际要计算所有不大于iii且与iii互质的数之和。根据gcd(i,j)=gcd(i,i−j)\gcd(i,j)=\gcd(i,i-j)gcd(i,j)=gcd(i,i−j),可以发现,与iii互质的数能够形成和为nnn的φn2\frac {\varphi n} 22φn对。所以这些数的和为nφn2\frac {n\varphi n} 22nφn。
带入,得
=∑k=1nk3 2∑i=1⌊nk⌋i×i∗φ(i)2=\sum_{k=1}^n k^3\ 2\sum_{i=1}^{\lfloor \frac n k \rfloor} i×\frac {i*\varphi(i)} 2=∑k=1nk3 2∑i=1⌊kn⌋i×2i∗φ(i)
之所以这里要乘上一个222,是因为(3,5)(5,3)(3,5)(5,3)(3,5)(5,3)是要被算222次的,但实则只被算了111次。我们抵消掉里面的那个222,可以得到:
=∑k=1nk3 ∑i=1⌊nk⌋i2∗φ(i)=\sum_{k=1}^n k^3\ \sum_{i=1}^{\lfloor \frac n k \rfloor} {i^2}*\varphi(i)=∑k=1nk3 ∑i=1⌊kn⌋i2∗φ(i)
于是,我们O(n)O(n)O(n)处理出i2×φ(i)i^2×\varphi(i)i2×φ(i)的前缀和,然后做一遍整除分块计算此式即可。
总时间复杂度O(n)O(n)O(n),无法通过本题。
可以发现,第二个∑\sum∑里面是一个前缀和的形式……是否能用杜教筛优化呢?
答案是可以的。设第一个函数为f(x)=x2φ(x)f(x)=x^2 \varphi(x)f(x)=x2φ(x),第二个函数为g(x)g(x)g(x),考虑它们卷积的形式
∑x∣df(x)g(dx)\sum_{x|d} f(x) g(\frac d x)x∣d∑f(x)g(xd)
由于f(x)=x2φ(x)f(x)=x^2 \varphi(x)f(x)=x2φ(x),其中的那个x2x^2x2看起来很难看,我们尝试把它消掉。令g(x)=x2g(x)=x^2g(x)=x2即可。
∑x∣df(x)g(dx)\sum_{x|d} f(x) g(\frac d x)∑x∣df(x)g(xd)
=∑x∣dx2φ(x)(dx)2=\sum_{x|d} x^2 \varphi(x) (\frac d x)^2=∑x∣dx2φ(x)(xd)2
=n2∑x∣dφ(x)=n^2 \sum_{x|d} \varphi(x)=n2∑x∣dφ(x)
由于φ∗I=id\varphi*I=idφ∗I=id,这个式子可以被进一步简写为n3n^3n3。
根据杜教筛的套路,我们只需要快速计算f×gf×gf×g的前缀和以及ggg的前缀和即可快速计算fff的前缀和。前者相当于三次方和,后者相当于平方和,可以套用下面的公式进行计算:
∑i=1ni2=i(i+1)(2i+1)6\sum_{i=1}^n i^2=\frac {i(i+1)(2i+1)} 6i=1∑ni2=6i(i+1)(2i+1)
∑i=1ni3=(i2(i+1)2)4\sum_{i=1}^n i^3=\frac {(i^2(i+1)^2)} 4i=1∑ni3=4(i2(i+1)2)
通过线性筛筛出前2n232n^{\frac 2 3}2n32至3n233n^{\frac 2 3}3n32个答案时复杂度最优,常数最小。
总时间复杂度O(n23)O(n^{\frac 2 3})O(n32)。
Summary
可以说每一步都是套路。
首先,我们使用了欧拉反演,将式子化为了∑k=1nk3 ∑i=1⌊nk⌋i2∗φ(i)\sum_{k=1}^n k^3\ \sum_{i=1}^{\lfloor \frac n k \rfloor} {i^2}*\varphi(i)∑k=1nk3 ∑i=1⌊kn⌋i2∗φ(i);然后,我们成功构造出了ggg函数,使得杜教筛有了用武之地。
有时,莫比乌斯反演或许很可爱,但是转变一下思想,使用欧拉反演,也许式子会被简化得更美妙。
本文探讨了一个复杂的数学求和问题,即求∑i=1n∑j=1nijgcd(i,j)的值,并给出了详细的解题过程。通过欧拉反演和杜教筛等技巧,最终实现了高效求解。
1247

被折叠的 条评论
为什么被折叠?



