其他分享
首页 > 其他分享> > [P2257] YY的GCD - 莫比乌斯反演,整除分块

[P2257] YY的GCD - 莫比乌斯反演,整除分块

作者:互联网

Description

给定 \(N, M\),求 \(1 \leq x \leq N\),\(1 \leq y \leq M\) 且 \(\gcd(x, y)\) 为质数的 \((x, y)\) 有多少对。\(T = 10^4\),\(N, M \leq 10^7\)。

Solution

首先按套路推导出

\[ans=\sum_d \lfloor \frac N d \rfloor \lfloor \frac M d \rfloor \sum_{p|d} \mu(\frac d p) \]

\[a(d)=\sum_{p|d} \mu(\frac d p) \]

于是

\[ans=\sum_d \lfloor \frac N d \rfloor \lfloor \frac M d \rfloor a(d) \]

便可以整除分块计算。关键在于如何预处理出 \(a(d)\)。

在预处理完 \(\mu\) 后,对于每一个 \(p\),枚举 \(j=1,2,3,\dots\),将 \(\mu(j)\) 加到 \(a(pj)\) 上即可,这部分的时间复杂度根据调和级数,为 \(O(n \log n)\)。由于对于各组数据,\(a(d)\) 的预处理是公共的,只需要在所有询问之前做一次即可。

标签:lfloor,mu,frac,GCD,P2257,sum,rfloor,YY,leq
来源: https://www.cnblogs.com/mollnn/p/13130069.html