日记
今天终于知道了什么是真正的性能。
我们直接开始推柿子:
ans=i=1∑nj=1∑ngcd(i,j)=d=1∑ndi=1∑nj=1∑n[gcd(i,j)=d]=d=1∑ndi=1∑⌊dn⌋j=1∑⌊dn⌋[gcd(i,j)=1]=d=1∑ndi=1∑⌊dn⌋j=1∑⌊dn⌋g∣gcd(i,j)∑μ(g)=d=1∑ndg=1∑⌊dn⌋μ(g)i=1∑⌊gdn⌋j=1∑⌊gdn⌋1=d=1∑ndg=1∑⌊dn⌋μ(g)⋅⌊gdn⌋2我们枚举 T=gd:
ans=d=1∑ndg=1∑⌊dn⌋μ(g)⋅⌊gdn⌋2=T=1∑n⌊Tn⌋2d∣T∑d⋅μ(dT)我们发现 ∑d∣Td⋅μ(dT)=(Id∗μ)(T)=φ(T),∗ 表示狄利克雷卷积。于是原式变成这样:
ans=T=1∑n⌊Tn⌋2⋅φ(T)可以用数论分块,用杜教筛求解 φ 的前缀和。时间复杂度 O(能过)。
这个 20s 时限是认真的吗?
我们继续推式子:
ans=i=1∑nj=i+1∑ngcd(i,j)=i=1∑nj=1∑i−1gcd(i,j)=d=1∑ndi=1∑nj=1∑i−1[gcd(i,j)=d]=d=1∑ndi=1∑⌊dn⌋j=1∑i−1[gcd(i,j)=1]=d=1∑ndi=1∑⌊dn⌋φ(i)然后就是愉快的杜教筛 + 数论分块。
然后看这个 20s 时限,想着自己造一组数据,于是就有了这个
今天晚上全取改杜教筛了,全然没有注意有一车人已经把综合训练改了。
但是该说不说这个综合训练是真的唐。我也是真的唐