题意
求
[sum _{i=1}^nsum _{j=1}^nd(ij) \
d(x)=sum _{e|x}e
]
(nle 10^9) 。
分析
没有推出来。这题有几个要点要学习。
第一,推式子要有方向,不能看到什么就动一动,最后搞出来一个算不了的东西。
第二,对于同一个多重和式的不同处理:
[sum _{i=1}^nsum _{j=1}^{lfloorfrac{n}{i}
floor}=sum _{j=1}^nsum _{i=1}^{lfloorfrac{n}{j}
floor}=sum _{ijle n}=sum _{i=1}^nsum _{j|i}
]
不同的情况可以用不同的处理,不过最后两种在平常的题目中用的比较少,主要是在推杜教筛表达式的时候会经常使用这种方法。
第三,看到可以化开的东西不要急,先把其他东西处理好,变成一个比较漂亮的形式再处理这个。
第四,求和上界的选取。在推式子的过程中,为了化简,可以把求和上界做一些不影响答案的改动,使得它与其他变量无关。比如说
[sum _{i=1}^nsum _{j=1}^{lfloorfrac{n}{i}
floor}jlfloorfrac{n}{ij}
floor
]
这里既然当 (j>lfloorfrac{n}{i} floor) 的时候后面的值为 0,那不如直接把 (j) 的求和上界改为 (n) ,简化一些条件。
于是就可以开始推这题了。
[egin{aligned}
sum _{i=1}^nsum _{j=1}^nsum _{d|ij}d&=sum _{i=1}^nsum _{j=1}^n[frac{d}{gcd(d,i)}|j]d \
&=sum _{i=1}^nsum _{d=1}^{n^2}dlfloorfrac{ngcd (d,i)}{d}
floor && (简化d的求和上界)\
&=sum _{e=1}^nsum _{i=1}^{lfloorfrac{n}{e}
floor}sum _{d=1}^{lfloorfrac{n^2}{e}
floor}delfloorfrac{ne}{de}
floor[gcd(i,d)=1] \
&=sum _{e=1}^nesum _{i=1}^{lfloorfrac{n}{e}
floor}sum _{d=1}^{n}dlfloorfrac{n}{d}
floor[gcd(i,d)=1] && (再次简化d的求和上界) \
&=sum _{i=1}^nsum _{e=1}^{lfloorfrac{n}{i}
floor}esum _{d=1}^ndlfloorfrac{n}{d}
floor[gcd(d,i)=1] \
&=sum _{a=1}^nmu (a)sum _{i=1}^{lfloorfrac{n}{a}
floor}g(lfloorfrac{n}{ai}
floor)sum _{d=1}^{lfloorfrac{n}{a}
floor}adlfloorfrac{n}{ad}
floor
end{aligned}
]
令 (g(n)=sum _{i=1}^nlfloorfrac{n}{i} floor,f(n)=sum _{i=1}^nilfloorfrac{n}{i} floor) ,那么
[ans=sum _{a=1}^namu (a)g(lfloorfrac{n}{a}
floor)f(lfloorfrac{n}{a}
floor)
]
(O(n^frac{3}{4})) 计算。