1 条题解
-
1
根据题目可以知道:我们要求最小的 的取值。
等式 可以转换为:
讨论 和 互质的情况 :
由欧拉定理可知:
$$10^t \equiv 10^{t\,\,mod \,\,\varphi (p)} \,\,(mod \,\, P) $$又知 , 那么考虑暴力枚举 , 必然可以找出最小的非负整数
设 $k = \sqrt{P} + 1 \,, \, t = kx-y \,\, (x \in [1,k] \,\, , \, \, y \in [0,k-1])$
通过枚举 一定可以遍历到 (开始的时候要对 进行判断)
发现 显然时间复杂度是不被接受的。那么考虑优化:
将问题转换为:
用一个哈希表讲右边所有的取值与 的对应存下来,然后枚举 ,在哈希表中查找是否有与 对应的 即可。预处理和枚举的时间复杂度都是 。
讨论此时不要求 和 互质:
有:
$$10^t \equiv Q(mod \,\, P) \Leftrightarrow 10^t + N\times P = Q $$令 ,左等式显然能被 整除,那么可以分为以下两种情况:
-
无解
-
$$\frac{10}{d}10^{t-1} + N \times\frac{P}{d} = \frac{Q}{d}\\ \frac{10}{d}10^{t-1} \equiv \frac{Q}{d}\,\, (mod \,\, \frac{P}{d})\\ \frac{10}{d}10^{t-1} \equiv \frac{Q}{d} \times (\frac{10}{d})^{-1}\,\, (mod \,\, \frac{P}{d}) $$
如果 和 已经互质了,那么直接使用前面的方法即可,如果不互质,递归执行步骤。实际上,由于因数有限,递归次数必然不会超过 。
-
- 1
信息
- ID
- 3091
- 时间
- 30ms
- 内存
- 512MiB
- 难度
- 9
- 标签
- (无)
- 递交数
- 38
- 已通过
- 3
- 上传者