前置知识:
不难发现,原来的:
∑ i = 1 n ∑ j = 1 n lcm ( i , j ) \sum_{i=1}^n \sum_{j=1}^n \operatorname{lcm}(i,j) i=1∑nj=1∑nlcm(i,j)
变成了:
∑ i = 1 n ∑ j = 1 n lcm ( a i , a j ) \sum_{i=1}^n \sum_{j=1}^n \operatorname{lcm}(a_i , a_j) i=1∑nj=1∑nlcm(ai,aj)
一言不合就开始推式子。
考虑用 c i c_i ci 表示 i i i 出现的次数,然后:
∑ i = 1 n ∑ j = 1 n lcm ( a i , a j ) = ∑ i = 1 n ∑ j = 1 n lcm ( i , j ) × c i × c j = ∑ i = 1 n ∑ j = 1 n i × j × c i × c j gcd ( i , j ) = ∑ d = 1 n ∑ i = 1 ⌊ n d ⌋ ∑ j = 1 ⌊ n d ⌋ [ gcd ( i , j ) = 1 ] d × i × j × c i d × c j d = ∑ d = 1 n ∑ i = 1 ⌊ n d ⌋ ∑ j = 1 ⌊ n d ⌋ ∑ k ∣ gcd ( i , j ) μ ( k ) × d × i × j × c i d × c j d = ∑ d = 1 n ∑ k = 1 ⌊ n d ⌋ ∑ i = 1 ⌊ n k d ⌋ ∑ j = 1 ⌊ n k d ⌋ μ ( k ) × d × i × j × k 2 × c i d k × c j d k = ∑ T = 1 n T × ( ∑ i = 1 ⌊ n T ⌋ i × c i T ) 2 ∑ k ∣ T μ ( k ) × k \begin{aligned} & \sum_{i=1}^n \sum_{j=1}^n \operatorname{lcm}(a_i , a_j) \\ =& \sum_{i=1}^n\sum_{j=1}^n \operatorname{lcm}(i,j)\times c_i \times c_j\\ =& \sum_{i=1}^n\sum_{j=1}^n \frac{i \times j\times c_i \times c_j}{\gcd(i,j)} \\ =& \sum_{d=1}^n\sum_{i=1}^{\lfloor \frac{n}{d} \rfloor}\sum_{j=1}^{\lfloor \frac{n}{d}\rfloor}[\gcd(i,j)=1]d\times i \times j \times c_{id} \times c_{jd} \\ =& \sum_{d=1}^n\sum_{i=1}^{\lfloor \frac{n}{d} \rfloor}\sum_{j=1}^{\lfloor \frac{n}{d}\rfloor}\sum_{k|\gcd(i,j)}\mu(k) \times d\times i \times j \times c_{id} \times c_{jd} \\ =& \sum_{d=1}^n\sum_{k=1}^{\lfloor \frac{n}{d} \rfloor}\sum_{i=1}^{\lfloor \frac{n}{kd} \rfloor}\sum_{j=1}^{\lfloor \frac{n}{kd}\rfloor}\mu(k)\times d \times i \times j \times k^2 \times c_{idk} \times c_{jdk} \\ =& \sum_{T=1}^{n}T\times(\sum_{i=1}^{\lfloor \frac{n}{T} \rfloor}i\times c_{iT})^2\sum_{k|T}\mu(k)\times k \end{aligned} ======i=1∑nj=1∑nlcm(ai,aj)i=1∑n

这篇博客解析了P3911题目,从弱化版问题出发,探讨如何利用数学公式和欧拉函数优化计算过程,降低时间复杂度到O(nlnn),并介绍了实际得分情况。
最低0.47元/天 解锁文章
873

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



