关于BSGS算法
文章中提到的p,如果不加说明则默认为素数。
BSGS算法适用于在求解形如ax≡b(modp)a^x\equiv b \pmod pax≡b(modp)的不等式。
可知0≤x<p0\le x<p0≤x<p,那么可以令x=A⌈p⌉−B,0<=A,B<=⌈p⌉x=A\lceil\sqrt{p}\rceil-B,0<=A,B<=\lceil\sqrt{p}\rceilx=A⌈p⌉−B,0<=A,B<=⌈p⌉
所以原问题转换成
aA⌈p⌉−B≡b mod pa^{A\lceil\sqrt{p}\rceil-B}\equiv b\bmod p\newlineaA⌈p⌉−B≡bmodp
即
aA⌈p⌉≡b∗aB mod pa^{A\lceil\sqrt{p}\rceil}\equiv b*a^B\bmod paA⌈p⌉≡b∗

BSGS算法是一种在解决模线性同余方程ax ≡ b (mod p)时的有效方法,尤其当p为素数。通过转换,将原问题转化为等比数列的形式,能在O(sqrt(p))的时间复杂度内求解。该算法还能应用于处理等比数列的求解。文章提到了特殊情况的处理,如x1 + (a-1)b = 0时的逆元问题,并提供了一个SDOI 2013比赛中的实际应用题目及AC代码示例。
最低0.47元/天 解锁文章
342

被折叠的 条评论
为什么被折叠?



