BSGS大法——有趣的分块打表

对于三个整数 A,B,C A , B , C ,满足 A,B<C<109 A , B < C < 10 9 A,C A , C 互质,求一个最小的x使得 AxB (mod C) A x ≡ B   ( m o d   C ) ,怎么做?
分块打表!

t=C,x=itj (i,j<t) t = ⌈ C ⌉ , x = i ∗ t − j   ( i , j < t )

则有
AitjB (mod C) A i ∗ t − j ≡ B   ( m o d   C )

AitBAj (mod C) A i ∗ t ≡ B ∗ A j   ( m o d   C )

那么我们只需要把所有 j[0,t) j ∈ [ 0 , t ) BAj B ∗ A j 存到map里,枚举i然后查询就好了。
code是exbsgs的。。。然而我累了不想说了。。。所以代码也先不管了
留坑代填

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值