摘要:
BSGS本质上是一个分块算法。 我们考虑暴力求解的过程,显然答案的周期为$p$,所以我们只需要求得p之内的答案即可。 此时依然可能有多个解。 这个时候,我们只需要枚举1到p利用快速幂求值即可。 不过这太慢了,我们考虑使用分块的方法 我们把p分为$m=\sqrt p$块 我们求出每一块的端点值即$a^ 阅读全文
摘要:
事实上,这是BSGS的模板题 但是我们注意到$a,b,p$并不保证互质。 所以我们首先需要约分 原方程可化为$a^x+py=b$ 等式两边同时除以$g=gcd(a,p)$,得 $a^x/g+py/g=b/g$ 于是有$a^x/g \equiv b/g\ (mod\ p/g)$ 当b不能被g整除时,$ 阅读全文