1 条题解
-
0
自动搬运
来自洛谷,原作者为

Alex_Wei
**搬运于
2025-08-24 22:39:14,当前版本为作者最后更新于2022-08-04 11:33:40,作者可能在搬运后再次修改,您可在原文处查看最新版自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多
以下是正文
题目描述
如果小 A 是一个,一个一个一个毒瘤,他会让你求解套了十层甚至九层娃的幂塔方程,但他不是。
他想让你求解:
保证 的最大质因子不超过 ,且 与 互质。
你需要保证得到的解 为 范围内的整数。若该范围内无解,输出 ;若存在多解,输出任意一个。
多组测试数据。
数据范围
- Subtask #1(5 points):。
- Subtask #2(8 points):。依赖 Subtask #1。
- Subtask #3(11 points): 是质数,。
- Subtask #4(15 points):,。
- Subtask #5(9 points):,。依赖 Subtask #4。
- Subtask #6(13 points):,。
- Subtask #7(7 points):,。依赖 Subtask #3,#6。
- Subtask #8(6 points):。依赖 Subtask #2。
- Subtask #9(16 points):,。
- Subtask #10(10 points):无特殊限制。依赖 Subtask #5,#7,#8,#9。
对于 的数据:
- 。
- 。
- ,。
- 。
Sol 0
验题人 chenxia25 给出了一个假做法:将 分解质因数,对于每个 可以单独求解。然后 excrt 合并。
问题在于 很大,且 可能不互质,但对于单独求解的 得到的解互质(因为有多解),导致同余方程合并时无解。
Sol 1
考虑 。
令 为 和 的解,容易发现 存在。
Sol 2
考虑 。
考虑 增量法构造。
设 。考虑如何 推到 。
容易发现令 仍然可行,因此设 。
考虑求出 。因为 $x_{i + 1} ^ {x _{i + 1}} \equiv D \pmod {p ^ {i + 1}}$,所以 $(x_i + Ip ^ i(p - 1)) ^ {x_i + Ip ^ i(p - 1)} \equiv D \pmod {p ^ {i + 1}}$。
因为 和 互质,所以 必然和 互质,所以 和 互质,故和 互质。欧拉定理可以用。
因为 ,所以 ,因此 $(x_i + Ip ^ i(p - 1)) ^ {x_i} \equiv D \pmod {p ^ {i + 1}}$。
这是一个 n 次剩余的形式。但是 太大,无法使用 BSGS 求解。
注意到 的大于 次方 等于 ,考虑 二项式展开。
$$(x_i + Ip ^ i(p - 1)) ^ {x_i} \equiv x_i ^ {x_i} + \dbinom{x_i} 1 x_i ^ {x_i - 1} \cdot Ip ^ i(p - 1) \equiv D \pmod {p ^ {i + 1}} $$令 ,则 ,即 $I\equiv \dfrac{D - v}{v p ^ i (p - 1)} \pmod {p ^ {i + 1}}$。
因为 ,所以 是 的倍数。设 ,则 ,显然 ,因此 在模 意义下的逆元存在,据此可求出 。
注意到 ,因此 ,构造出的解远小于 这一上界,算法可行。
时间复杂度约为 。
Sol 3
考虑 是 square free number。
考虑 增量法构造。
设 的质因子分别为 ,令 ,。
设 ,考虑如何从 推到 。
如法炮制,发现令 仍然可行,因此设 。但是再走二项式展开的老路就行不通了,因为 。
怎么办呢?注意到若需保证 ,因为必然有 $(x_i + IP_iQ_i) ^ {x_i + IP_iQ_i} \equiv D\pmod {P_i}$ 且 ,根据中国剩余定理,只需保证 $(x_i + IP_iQ_i) ^ {x_i + IP_iQ_i} \equiv D\pmod {p_{i + 1}}$。发现还是很不好做,因为 同时在底数和指数上,而且 。
考虑化去指数上的 。
尝试改变定义,令 ,因为 ,这为接下来寻找逆元奠定基础(如果令 ,实际上相当于给 加上 的循环节 的倍数 的倍数,显然不可行,因为当且仅当 已经符合要求时我们能找到合法的 )且 。
这样一来,上式化简为 $(x_i + IP_iQ_{i + 1}) ^ {x_i} \equiv D\pmod {p_{i + 1}}$。求解该 n 次剩余,令 为 的任意原根,,则 $I \equiv \dfrac {g ^ {\frac u {x_i}} - x_i}{P_i Q_{i + 1}} \pmod {p_{i + 1}}$。
此时出现了一个严重的问题。分子的 在模 意义下求解,但 和 可能不互质。
尝试修补这个问题。即尝试令 。
接下来是一步巧妙转化:令 ,使得 。
但是又出现了问题,即 可能和 不互质。
给出引理:若 ,则对于任意 ,存在 使得 。
证明:将 分解质因数成 的形式。容易证明 或 。若非,说明 和 同时含有质因子 ,与假设矛盾。又因为若 ,显然 ,即 在 模意义下。根据中国剩余定理,得证。
我们发现这是一个递归形式的问题,即若 归纳假设 ,则能找到这样的 使得 ,且上述引理给出了一个求解 的方法,即对 分解质因数并 CRT 合并。而 若条件满足,则结论满足,推出下一轮的条件仍满足:$x'_i \perp p_{i + 1} - 1 \Rightarrow x'_i \perp P_iQ_{i + 1} \Rightarrow x'_i + IP_iQ_{i + 1} \perp P_iQ_{i + 1} \Rightarrow x_{i + 1}\perp P_iQ_{i + 1}$,又因为 ,所以 。
同时,当在构造第一步时,Sol 2 满足归纳的初始条件,因为 且 ,显然 。
梳理一下上面的思路,发现添加限制 之后,为了满足该性质所需进行的操作的正确性被该性质所保证,而一开始性质满足,故正确性得以保证。这是归纳法非常巧妙的应用。
这样,我们解决了 可能无解的问题。
与 互质,其在模 意义下存在逆元。我们得以算出 $I \equiv \dfrac {g ^ {\frac u {x'_i}} - x'_i}{P_i Q_{i + 1}} \pmod {p_{i + 1}}$,从 扩展至 。
时间复杂度约为 $\mathcal{O}(m ^ {\frac 5 4} + T\omega(n)(\log n + \sqrt m))$:预处理 以内每个质数(约 个)的原根(单次复杂度 )。BSGS 求解离散对数方程时模数非常小,不需要
map或哈希表,用数组记录即可。由于 均为 级别,因此对应的 和 的一个粗略上界为 ,略小于 的限制,符合要求。若担心超出上界,可以令 对 取模。
Sol 4
结合 Sol 2 和 Sol 3,从小到大考虑所有质因子。若相邻两个质因子相同,则使用 Sol 2,将对应的 换成 ;否则使用 Sol 3 即可。
接下来是一些细节讨论:
- 在 Sol 2 使用欧拉定理时,需要 。考虑 包含 个质因子 ,则 也包含 个质因子(根据欧拉定理的计算式可得)。同时, 所有形如 的乘积项被 消去,因此上式仍然成立。
- 在 Sol 2 二项式展开时,需要 的大于 次幂是 的倍数。显然成立,因为 。
- 在 Sol 2 求解 时,需要 在模 意义下存在。由于分子,分母和模数均为 的倍数,因此同除后分母 和 互质,这是因为 显然和 互质,且 。
- 在 Sol 3 中的归纳假设需要在 Sol 2 中满足,因为我们会交替使用 Sol 2 和 Sol 3。因为 Sol 2 的初始条件成立,所以 。因为 相较于 没有增加更多质因子,所以显然 。
综上,时间复杂度 $\mathcal{O}(m ^ {\frac 5 4} + T((\omega(n) + \log m)\log n + \omega(n) \sqrt m))$,常数较大。
可以获得 100 分的好成绩。
一些补充:
- 在求解 时,可以每次给 加上 直到符合要求而非 CRT 求解。因为每次加上 可以看做从 中随机选一个数,期望随机 $\dfrac {p_{i + 1} - 1} {\varphi(p_{i + 1} - 1)} - 1$ 次(初始状态算一次)即可得到与 互质的 。
- 笔者认为本题是一道不可多得的数论好题。尽管其形式简单,但却涉及到了 exgcd 求逆元,CRT 合并同余方程,BSGS 求解离散对数和 n 次剩余问题。归纳法用得恰到好处。整个算法优美而简洁,思维难度极高。没有冗余步骤,只是纯粹的数论。
- 1
信息
- ID
- 7768
- 时间
- 5000ms
- 内存
- 512MiB
- 难度
- 7
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者