题解
这题是$bzoj2154$的加强版
由于多组数据,我们像$bzoj2154$那样的$O(n)$做法已经不行了,考虑进一步优化
$ans=\sum_{d=1}^{min(n,m)}d\times F(\left [ \frac{n}{d} \right ],\left [ \frac{m}{d} \right ])=\sum_{d=1}^{min(n,m)}d\sum_{i=1}^{min(n,m)}i^2 \times \mu(i)\times Sum(\left [ \frac{n}{di} \right ],\left [ \frac{m}{di} \right ])=\sum_{D=1}^{min(n,m)}Sum(\left [ \frac{n}{d} \right ],\left [ \frac{m}{d} \right ])\sum_{i|d}^{ }\frac{D}{i}\times i^2\times \mu(i)$
我们发现$\sum_{i|d}^{ }\frac{D}{i}\times i^2\times \mu(i)$可以用前缀和来优化
注意到积性函数的约数和也是积性函数
因此后面的那坨东西可以利用线性筛求出来
线性筛当$i%prime[j]=0$时不满足积性函数的条件,但是由于此时$\mu(prime[j])=0$,故多出来的因数的函数值都是0,增加的只有原先因数的答案乘了个$prime[j]$而已
然后我们就可以$O(\sqrt n)$回答询问了
参考代码
|
|