BSGS

BSGS

  • 0A,Bp

aAPBb(modP)aAPb×aB(modP)

  • 那么预处理出 b×aB ,枚举 A 看是否有匹配的,复杂度为 O(P) 如果用 unordered_map
  • 但是前提条件是 Pa 互质,不然不保证有逆元

EXBSGS

  • 假设当前不互质,那么

  • d=gcd(a,p) ,将 a,b,p 都除以 d

  • 也就是变成 adax1bd(modPd)

  • 然后再判断 a 是否和 Pd 互质,一次类推下去,直到最后两者互质,那么就有逆元了,那么就可以开始 BSGS 了

  • 最后应该长 aDaxdbD(modPD)

  • 这个就好求了

另一类高次剩余问题

  • 对于一个质数的原根,在模意义下,对于 0x<P ,一定存在 0c<P ,满足 gc=x

  • 对于这一类 xab(modP) , P 是质数

  • 我们可以找到一个 P 的原根,令 x=gc ,一定可以找到这个 gc

  • 那么 gxab(modP) ,这样就转换成 BSGS 了

posted @   Kzos_017  阅读(35)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
点击右上角即可分享
微信分享提示