1 条题解
-
0
题意理解
我们需要统计所有满足 , 的分数 ,在 进制下是纯循环小数,并且只算数值不同的分数。
纯循环小数的条件
在 进制下,一个既约分数 是纯循环小数的充要条件是:
分母 与 互质(即 )。这是因为:
- 如果 含有 的质因子,那么 进制下该分数是有限小数或混循环小数。
- 如果 与 互质,则小数从第一位开始循环,是纯循环小数。
问题转化
我们要统计所有不同的 值,其中:
- 只算不同的最简分数值。
注意:不同的 值,就是不同的 对,并且分母与 互质。
数学形式
设 ,则 ,其中 。
条件 必须成立(因为分母必须与 互质)。
所以我们要统计所有互质对 满足:
并且 互不相同(这里互质对天然互不相同)。
统计公式
设 表示满足:
的互质对 的数量。
那么答案就是:
$$\sum_{q=1}^m [\gcd(q, k) = 1] \sum_{p=1}^n [\gcd(p, q) = 1] $$
化简
对于固定的 ,与 互质的 的数量是:
$$\sum_{p=1}^n [\gcd(p, q) = 1] = \sum_{d|q} \mu(d) \left\lfloor \frac{n}{d} \right\rfloor $$其中 是莫比乌斯函数。
因此:
$$\text{ans} = \sum_{q=1}^m [\gcd(q, k) = 1] \sum_{d|q} \mu(d) \left\lfloor \frac{n}{d} \right\rfloor $$交换求和顺序:
$$\text{ans} = \sum_{d=1}^m \mu(d) \left\lfloor \frac{n}{d} \right\rfloor \sum_{\substack{q=1 \\ d|q}}^m [\gcd(q, k) = 1] $$令 ,则 ,且 。
因为 等价于 且 。
所以:
$$\text{ans} = \sum_{d=1}^m \mu(d) \left\lfloor \frac{n}{d} \right\rfloor \cdot [\gcd(d, k) = 1] \cdot \sum_{t=1}^{\lfloor m/d \rfloor} [\gcd(t, k) = 1] $$
定义辅助函数
设:
即 中与 互质的数的个数。
那么:
$$\text{ans} = \sum_{d=1}^m \mu(d) \cdot [\gcd(d, k) = 1] \cdot \left\lfloor \frac{n}{d} \right\rfloor \cdot S\left( \left\lfloor \frac{m}{d} \right\rfloor, k \right) $$
高效计算
- 可以用容斥原理在 时间内计算,其中 是 的不同质因子个数,因为 ,所以 很小。
- 我们还需要 且 的前缀和,用于整除分块。
设:
我们可以用类似 Min25 筛的方法或直接容斥来求 ,但这里 可达 ,需要杜教筛。
杜教筛
我们要求:
设 。
注意到 的另一种形式是:
其实更简单:。
我们可以用 Dirichlet 卷积:
这等于 吗?不一定,因为 破坏了完全积性。
更好的办法:注意到 ,其中 是模 的平凡特征(完全积性)。那么:
$$(g * \chi)(n) = \sum_{d|n} \mu(d) [\gcd(d, k) = 1] \cdot [\gcd(n/d, k) = 1] $$但 且 意味着 ,此时 (当 )。否则为 。
所以:
因为只有 时非零。
于是:
交换求和:
$$\sum_{d=1}^n g(d) \sum_{t=1}^{\lfloor n/d \rfloor} \chi(t) = 1 $$即:
所以:
$$g(n) = \sum_{d=1}^n g(d) S(\lfloor n/d \rfloor, k) = 1 $$移项:
$$g(1) S(n, k) + \sum_{d=2}^n g(d) S(\lfloor n/d \rfloor, k) = 1 $$。
所以:
$$S(n, k) + \sum_{d=2}^n g(d) S(\lfloor n/d \rfloor, k) = 1 $$于是:
$$g(n) = 1 - \sum_{d=2}^n g(d) S(\lfloor n/d \rfloor, k) $$这给出了 的前缀和的递归计算方法,可以杜教筛。
算法步骤
- 预处理 的容斥计算。
- 用杜教筛计算 。
- 对答案式:
使用整除分块,每次需要 和 。
时间复杂度
- 杜教筛 预处理,查询 或 。
- 整除分块 次查询。
- 总复杂度大约 。
- 1
信息
- ID
- 4879
- 时间
- 2000ms
- 内存
- 512MiB
- 难度
- 10
- 标签
- 递交数
- 1
- 已通过
- 1
- 上传者