您的位置:首页 > 其它

bzoj2820: YY的GCD

2016-04-18 10:25 288 查看
题意

给定\(n,m(1 \leqslant n,m \leqslant 10000000)\),求\(1\leqslant x \leqslant n\), \(1 \leqslant y \leqslant m\)且\(\gcd(x, y)\)为质数的\((x, y)\)有多少对.

\(T(\leqslant 10000)\)组询问

题解

\[ans = \sum_{p \in P}\sum_{i=1}^{n}\sum_{j=1}^{m}{[\gcd(i,j)=p]} \\
= \sum_{p \in P}\sum_{i=1}^{\lfloor\frac{n}{p}\rfloor}\sum_{j=1}^{\lfloor\frac{m}{p}\rfloor}{[\gcd(i,j)=1]} \\
= \sum_{p \in P}\sum_{i=1}^{\lfloor\frac{n}{p}\rfloor}\sum_{j=1}^{\lfloor\frac{m}{p}\rfloor}\sum_{d|\gcd(i,j)}\mu(d) \\
= \sum_{p \in P}\sum_{i=1}^{\lfloor\frac{n}{p}\rfloor}\sum_{j=1}^{\lfloor\frac{m}{p}\rfloor}\sum_{d|i,d|j}\mu(d) \\
= \sum_{p \in P} \sum_{d=1}^{\min(n,m)} \mu(d)\biggl\lfloor\frac{n}{pd}\biggr\rfloor \biggl\lfloor\frac{m}{pd}\biggr\rfloor \\
= \sum_{T}^{\min(n,m)}\biggl\lfloor\frac{n}{T}\biggr\rfloor \biggl\lfloor\frac{m}{T}\biggr\rfloor \sum_{p \in P, p|T}\mu(\frac{T}{p})\]

令\[f(T)=\sum_{p \in P, p|T}\mu(\frac{T}{p})\]

那么对\(f(T)\)求前缀和则问题可以在\(O(\sqrt{n})\)的时间内解决。

显然\(f(T)\)可以通过类似埃式筛法在\(O(n\log\log n)\)的时间内求出

至此,问题在\(O(n\log\log n+T\sqrt{n})\)内解决

————————————————————————————————————————

然而\(f(T)\)仍然可以通过线性筛得到:

现在已知\(f(x) = \sum_{p'|x}\mu(\frac{x}{p'})\)

考虑\(f(px)\)

若\(p|x\),则\[f(px) = \sum_{p'|x}\mu(\frac{xp}{p'})\]

显然,当\(p=p'\)时值为\(\mu(x)\),当\(p \ne p'\)时,值为0.

所以此时\(f(px) = \mu(x)\)

若\(p\not|x\),则\[f(px) = \sum_{p'|x}\mu(\frac{xp}{p'}) + \mu(x) = -f(x) + \mu(x)\]

至此,问题在\(O(n+T\sqrt{n})\)内解决
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: