Mophues
题意
若a的质因子个数<=P,则称a为p的一个lucky number。
给你n,m,P,求在n,m范围内的i,j,gcd(i,j)是P的lucky number,这样的i,j有几对?
n,m,P<=5e5。多组不超过5000组。
思路
题意就是让我们求:
$$
\sum_{i=1}^n\sum_{j=1}^mf(gcd(i,j)),其中f(x)表示x的质因子个数比p小
$$
反演过程就不具体写了,我们可以轻松得到结果:
$$
\sum_{t=1}^{min(n,m)}\lfloor\frac{n}{t}\rfloor\lfloor\frac{m}{t}\rfloor\sum_{d|t}f(d)μ(\frac{t}{d})
$$
经过计算我们发现,5e5内的数字最大的质因数个数为18,那么对于大于18的p我们就可以降为18。
首先对5e5内的数预处理出它们的质因子个数。
然后枚举d,用sum[i][j]表示当t=i时,质因子个数为j的数的μ之和。
再对sum[i][j]求t=i时质因子个数小于等于j的μ之和。
然后对每一个t的sum求一个前缀和。
就可以分块做了。
注意ans和sum还是要开longlong。
看!代码
1 |
|