【POJ2417】Discrete Logging

Description

给定形如$a^x\equiv b\pmod p$的高次同余方程,求解$x$

Solution

BSGS的模板题

假设$x=i*t-j$,并且$t=\lceil\sqrt p\rceil,0\leq j\leq {t-1}$

那么方程可化为$a^{i*t-j}\equiv b\pmod p$

变形,得$(a^t)^i\equiv b*a^j\pmod p$

对于所有的$j\in[0,t-1]$,把$b*a^j\mod p$放入哈希表

对于所有的$i\in[0,t]$,计算出$(a^t)^i\mod p$,在哈希表中查找是否存在对应的$j$即可。

时间复杂度为$O(\sqrt p)$

posted @ 2019-08-03 16:59  AD_shl  阅读(133)  评论(0编辑  收藏  举报