P2257 YY的GCD
Description
题目链接:P2557
有 $T$ 组数据,求:
$$\sum\limits_{i=1}^n\sum\limits_{j=1}^m[gcd(i,j)\in prime]$$
$T\leq 10^4,n,m\leq 10^7$
Solution
显然可以枚举质数,所以原式可以化为:
$$\sum\limits_{i=1}^n\sum\limits_{j=1}^m\sum\limits_{k=1}^{\min{n,m}}[gcd(i,j)=k](k\in prime)$$
根据基本套路,可以把 $[gcd(i,j)=k]$ 化为 $[gcd(i,j)=1]$:
$$\sum\limits_{k=1}^{\min{n,m}}\sum\limits_{i=1}^{\lfloor \frac{n}{k} \rfloor}\sum\limits_{j=1}^{\lfloor \frac{m}{k}\rfloor}[gcd(i,j)=1](k\in prime)$$
由莫比乌斯函数性质可得:
$$\sum\limits_{k=1}^{\min{n,m}}\sum\limits_{i=1}^{\lfloor \frac{n}{k} \rfloor}\sum\limits_{j=1}^{\lfloor \frac{m}{k}\rfloor}\sum\limits_{dgcd(i,j)}\mu(d)(k\in prime)$$
再根据基本套路,可以变换枚举顺序,可得:
$$\sum\limits_{k=1}^{n}\sum\limits_{d=1}^{\lfloor\frac{n}{d} \rfloor}\mu(d)\times \lfloor \frac{n}{kd} \rfloor\times \lfloor \frac{m}{kd} \rfloor(k\in prime)$$
此时时间复杂度为 $\mathcal{O}(\text{质数个数}\times \sqrt N)$,显然会 TLE。
此时就有一个常用的技巧可以降低时间复杂度。
设 $T=kd$,有
$$\sum\limits_{T=1}^n \lfloor \frac{n}{T}\rfloor\times \lfloor \frac{m}{T}\rfloor \sum\limits_{kT,k\in prime}\mu(\frac{T}{k})$$
显然后面的式子可以直接预处理。
暂且将这种常用的技巧理解为通过变换枚举顺序,使得某一式子可以预处理化吧。
然后时间复杂度就变成了 $\mathcal{O}(T\sqrt N+N)$
Code
1 |
|