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 了

posted @ 2022-06-04 10:27  kzos  阅读(61)  评论(0)    收藏  举报