ans=∑i=1n∑j=1nijgcd(i,j)=∑d=1nd∑d|iμ(id)∑i|j∑i|kjk=∑d=1nd∑d|iμ(id)i2⌊ni⌋2(1+⌊ni⌋)24=∑i=1ni2⌊ni⌋2(1+⌊ni⌋)24∑d|id⋅μ(id)
因为有 μ∗id=φ ,其中 ∗ 为Dirichlet卷积,即
则原式为
=∑i=1ni2⌊ni⌋2(1+⌊ni⌋)24φ(i)∑i=1n⌊ni⌋2(1+⌊ni⌋)24i2⋅φ(i)
若能求出 f(i)=i2⋅φ(i) 的值,即可利用下底函数的分块做到 O(n√+T(QueryF))
设 S(i)=∑ij=1f(j) ,则
==∑i=1n(f∗id2)(i)∑i=1ni3∑j=1nj2⋅S(⌊nj⌋)
于是
S(n)=∑i=1ni3−∑i=2ni2⋅S(⌊ni⌋)
利用线性筛预处理前 O(n23) 的部分,然后求前缀和的复杂度就只有 O(n23) 了。
注意
n
比较大,要用到