BSGS 大步小步

BSGS 大步小步

BSGS 用于求形同

$$a^x \equiv b \mod{p}$$

的方程。

我们令 $x = k \lfloor\sqrt{p}\rfloor + c$。

则有

$$x^{k \lfloor\sqrt{p}\rfloor + c} \equiv b \mod{p}$$

稍微推导,即可得到

$$a^c \equiv \cfrac{b}{a^{k \lfloor\sqrt{p}\rfloor}} \mod{p}$$

枚举 $k$ ,范围为 $1\to\lfloor\sqrt{p}\rfloor$ 。

预处理 $a_0 \to a_p$ 存入哈希表 $h$ 中,注意:若有相同取值,取指数较小的那个。

对于每个 $\cfrac{b}{a^{k \lfloor\sqrt{p}\rfloor}}$ ,判断是否位于 $h$ 中。

如果存在,输出 $h[\cfrac{b}{a^{k \lfloor\sqrt{p}\rfloor}}] + k \lfloor\sqrt{p}\rfloor$。

若没有,则无解。

posted @ 2025-07-11 23:33  fyv233  阅读(14)  评论(0)    收藏  举报