先看这样一个性质:
若A≡B(mod P)
假设d=gcd(A,P),且B%d=0
则 $\frac{A}{d}$ ≡$\frac{B}{d}$(mod $\frac{P}{d}$)
所以只要B%d==0,就能一直化简直到d=gcd(A,P)=1
我们再来$a^x$ ≡b(mod P)
如果也能这样化简的话就能直接用BSGS做了
显然如果化简过程中B%d!=0,那么就无解
于是原方程可以写为$A^{x-cnt}$ * $\frac{A^{cnt}}{S}$≡$\frac{B}{S}$(mod $\frac{P}{S}$)
( S=d1* d2* d3 * … *dcnt)
换元,$A^{‘}$ ≡ $\frac{A^{x-cnt}}{S}$,$B^{‘}$≡$\frac{B}{S}$ ,$P^{‘}$≡$\frac{P}{S}$
此时 $P^{‘}$ 为质数,就用BSGS处理
1 | ll exbsgs(ll A,ll B,ll P){ |
PSS:用map存可能会TLE(???)所以最好用哈希表