BSGS
BSGS
- 设 \(0\leq A,B\leq \sqrt p\)
\[a^{A\sqrt P -B}\equiv b\pmod P\\
a^{A\sqrt P}\equiv b\times a^{{B}} \pmod P
\]
- 那么预处理出 \(b\times a^B\) ,枚举 \(A\) 看是否有匹配的,复杂度为 \(O(\sqrt P)\) 如果用
unordered_map - 但是前提条件是 \(P\) 和 \(a\) 互质,不然不保证有逆元
EXBSGS
-
假设当前不互质,那么
-
设 \(d=\gcd(a,p)\) ,将 \(a,b,p\) 都除以 \(d\)
-
也就是变成 \(\frac{a}{d}*a^{x-1}\equiv \frac{b}{d}\pmod {\frac{P}d{}}\)
-
然后再判断 \(a\) 是否和 \(\frac{P}{d}\) 互质,一次类推下去,直到最后两者互质,那么就有逆元了,那么就可以开始 BSGS 了
-
最后应该长 \(\frac{a}{D}*a^{x-d}\equiv \frac{b}{D} \pmod{\frac{P}{D}}\)
-
这个就好求了
另一类高次剩余问题
-
对于一个质数的原根,在模意义下,对于 \(0\leq x<P\) ,一定存在 \(0\leq c<P\) ,满足 \(g^c=x\)
-
对于这一类 \(x^a\equiv b \pmod P\) , \(P\) 是质数
-
我们可以找到一个 \(P\) 的原根,令 \(x=g^c\) ,一定可以找到这个 \(g\) 和 \(c\)
-
那么 \(g^{xa}\equiv b \pmod P\) ,这样就转换成 BSGS 了

浙公网安备 33010602011771号