蒟蒻求助,这样做有什么问题?
查看原帖
蒟蒻求助,这样做有什么问题?
211658
辗转不纪年楼主2020/9/1 12:55

我一开始的推法跟题解都不太一样:

i=1nj=1naiaj(ai,aj)\sum\limits_{i=1}^n\sum\limits_{j=1}^n\dfrac{a_ia_j}{(a_i,a_j)}

=d1di=1nj=1naiaj[(ai,aj)=d]=\sum\limits_{d}\dfrac1d\sum\limits_{i=1}^n\sum\limits_{j=1}^na_ia_j[(a_i,a_j)=d]

=d1ddaidajaiajk(aid,ajd)μ(k)=\sum\limits_{d}\dfrac1d\sum\limits_{d\mid a_i}\sum\limits_{d\mid a_j}a_ia_j\sum\limits_{k\mid\left(\frac{a_i}{d},\frac{a_j}{d}\right)}\mu(k)

=dk1dμ(k)dkaidkajaiaj=\sum\limits_{d}\sum\limits_{k}\dfrac1d\mu(k)\sum\limits_{dk\mid a_i}\sum\limits_{dk\mid a_j}a_ia_j

T=dkT=dkf(T)=dT1dμ(Td)f(T)=\sum\limits_{d\mid T}\frac1d\mu\left(\frac T d\right),那么就变成了

Tf(T)(Taiai)2\sum\limits_Tf(T)\left(\sum\limits_{T\mid a_i}a_i\right)^2

ff和后面的\sum都可以在O(nlogn)O(n\log n)的时间里预处理出来。

我是这样做的,实现的过程中有一个棘手的问题是需要计算1d\dfrac1d但不取模,我就用了double来存储中间的一些量。

结果过了样例,但是只过了一个点,后面9个点都WA了,想知道究竟是我代码有问题还是上面推式子的过程有问题呢?

2020/9/1 12:55
加载中...