impluse
P9060 [Ynoi2002] Goedel Machine
分别对每个质因数计算贡献。
大于 $\sqrt w$ 的质因数最多只有一个,考虑根号分治。
对于 $p\le \sqrt w$,考虑每个询问,求出 $[l,r]$ 中 $p$ 的倍数个数为 $k$,于是 $ p|\gcd S$ 的 $S$ 有 $2^{k}-1$ 个,对答案的贡献为 $p^{{2^k}-1}$,再考虑 $p^2,p^3,\cdots $,因为考虑 $p^x$ 时 $p^1\sim p^{x-1}$ 都已计算过贡献,只需乘上这次的 $p^{2^k-1}$。预处理 $k\in[0,n],p^{2^k}$ 和 $p^{-1}$ 即可快速计算贡献。由质数分布的离散性得时间复杂度 $O((n+m)\frac{\sqrt w}{\log w}\log n)=O(n\sqrt w+m\sqrt w)$,离线即可做到空间复杂度 $O(n+m+w)$。
对于 $p>\sqrt w$,所有 $p$ 的倍数个数不超过 $n$,同上处理 $k\in[0,cnt_p],p^{2^k}$ 以及它们的逆元,直接上莫队即可。时间复杂度 $O(n\sqrt m)$。
综上,时间复杂度 $O(n\sqrt w+m\sqrt w+n\sqrt m)$,空间复杂度 $O(n+m+w)$。

浙公网安备 33010602011771号