题目链接hdu4746
题目大意:有Q个询问,对每个询问,给出N,M,P,求 1 <= x <= N,1 <= y <= M 中满足 gcd(x, y) 的质因子个数 <= P 的有序对(x, y)的对数。(如12 = 2 × 2 × 3,则其质因子个数为3)
本题和以前不同的是,我们要求的并不是gcd(x, y)等于某个定值了,而是需要gcd(x, y)满足一定的条件。无论如何,根据以往的经验,我们先定义F(d)和f(d):
f(d) = | {(x, y) | gcd(x, y) == d, x <= N, y <= M} |
F(d) = | {(x, y) | (d | gcd(x, y)), x <= N, y <= M} |
并进行反演,最后可得:
设g(x)表示x的质因子的个数,则我们要求的事实上是:
但是直接这样算肯定是要超时的,我们设T = i × j,则原式可化简为:
我们如果预处理出对每个T的μ函数之和,即可在线性时间复杂度内求出结果。
不过,本题还有多个询问,因此需要对求出的μ函数之和再求前缀和,从而通过上一道例题中提到的分段的方法快速求解。
|
|