专栏文章

题解:P12239 [蓝桥杯 2023 国 Java A] 游戏的得分

P12239题解参与者 1已保存评论 0

文章操作

快速查看文章及其快照的属性,并进行相关操作。

当前评论
0 条
当前快照
1 份
快照标识符
@minulsi3
此快照首次捕获于
2025/12/02 08:36
3 个月前
此快照最后确认于
2025/12/02 08:36
3 个月前
查看原文
感谢 diqiuyi 提供了一种更快的做法,前置芝士:十四字算法
这道题相当于要询问多组模同一个数的 BSGS,因此想到 基于值域预处理的快速离散对数,它可以 O(logp)O(\log p) 快速回答 BSGS,代价是一次 O(p34/log0.5p)O(p^{\frac{3}{4}}/\log^{0.5}p) 的预处理,对于这道题来说完美适配。
但是,它由于使用了 log\log 的性质,所以只能对于原根求出离散对数,无法在此题直接应用。
因此,我们先预处理出 A=log32A=\log_3 2
每次询问时,记询问的数是 xx,我们求出 B=log3xB=\log_3x,由换底公式,我们有 log2x=log3xlog32\log_2 x=\frac{\log_3 x}{\log_3 2}
但由于在指数上,模数非质数的缘故,我们无法直接求出 log32\log_3 2 的逆元,但是我们可以退而求其次:
容易发现,当且仅当方程 xAB(mod p1)xA\equiv B(\bmod\ p-1) 有解时,xx 的最小非负整数解刚好满足换底公式(否则,可以证明原方程必然无解),xx 即所求,因此再写一个 exgcd 解同余方程即可。
轻松抢下目前最优解,提交记录

评论

0 条评论,欢迎与作者交流。

正在加载评论...