BSGS模版 a^x=b ( mod c)】的更多相关文章

kuangbin的BSGS: c为素数: #define MOD 76543 int hs[MOD],head[MOD],next[MOD],id[MOD],top; void insert(int x,int y) { int k = x%MOD; hs[top] = x, id[top] = y, next[top] = head[k], head[k] = top++; } int find(int x) { int k = x%MOD; ; i = next[i]) if(hs[i] =…
k=1:裸的快速幂k=2:xy=z+kp,直接exgcd,这个可以不用解释了,不懂的同学可以看代码 k=3:裸的BSGS 重点是k=3(BSGS学习)ax=b(mod p)求解这个同余方程只能求gcd(a,p)=1的情况.如何求解?很容易发现解一定位于{0,p-1}之间,设q=ceil(√p),然后x可以表示成cq-d因为ax=b(mod p),所以acq=b*ad(mod p)于是可以这样考虑:枚举d∈[1,q],将值插入哈希表,如有重复的则只记录最大的d,因为本题是求最小解,再枚举c=1..…
大步小步走算法处理这样的问题: A^x = B (mod C) 求满足条件的最小的x(可能无解) 其中,A/B/C都可以是很大的数(long long以内) 先分类考虑一下: 当(A,C)==1 即A.C互质的时候, 叫他BSGS: A一定存在mod C意义下的逆元,所以,A^k也存在. 注意到,A^(fai(c)) = 1 (mod c)  ......................(fai(c)表示c的欧拉函数值) 所以,A^(fai(c)+1) = A (mod C) 就重新回去了. 所…
求解A^x ≡ B mod P (P不一定是质数)的最小非负正整数解 先放几个同余定理: 一.判断如果B==1,那么x=0,算法结束 二.若gcd(A,P)不能整除 B,则 无解,算法结束 三.若gcd(A,P)!=1,令d=gcd(A,P),若d不能整除B,则无解,算法结束. 有 四.持续步骤三,直至 gcd(A,)=1 有  五.枚举 0<x<k,若有解,输出x,算法结束 六.对于x>=k, A=,B=,P= A,P 互素 , 直接用BSGS 求    * A ^ x ≡ B mod…
点此看题面 大致题意: 求满足\(个111...111(N\text{个}1)\equiv K(mod\ m)\)的最小\(N\). 题目来源 这题是洛谷某次极不良心的月赛的\(T1\),当时不会\(BSGS\)的我一脸蒙蔽,直接交暴力弃疗. 公式转换 如果你会\(BSGS\),这题就是一道入门级别的板子题. 首先我们要知道一个很基础的变形: \[个111...111(N\text{个}1)=10^{N-1}+10^{N-2}+...+10^0=\frac{10^N-1}9\] 于是我们的到了:…
扩展BSGS用于求解axΞb mod(n) 同余方程中gcd(a,n)≠1的情况 基本思路,将原方程转化为a与n互质的情况后再套用普通的BSGS求解即可 const int maxint=((1<<30)-1)*2+1; struct Hashmap{     static const int Ha=999917,maxe=46340;     int E,lnk[Ha],son[maxe+5],nxt[maxe+5],w[maxe+5];     int top,stk[maxe+5];  …
基础BSGS 用处是什么呢w 大步小步发(Baby-Step-Giant-Step,简称BSGS),可以用来高效求解形如\(A^x≡B(mod C)\)(C为素数)的同余方程. 常用于求解离散对数问题.形式化地说,该算法可以在\(O(\sqrt{n})\)用于求解. 接下来是算法过程 首先我们讨论的都是(A,C) = 1(由于C是素数,所以等价于A不是C倍数)的情况,如果(A,C) > 1(A是C倍数),很容易特判掉. 先引入一个结论: 如果(A,C) = 1,那么对于\(x \in N\),有…
题意 将\(x_1,x_2,x_3...x_n\)写出来可以发现通项为\(a^{i-1}*x_1+b*\sum\limits_{j=0}^{i-2}a^j=a^{i-1}*x_1+b*\frac{1-a^{i-1}}{1-a}=(x_1-\frac{b}{1-a})a^{i-1}+\frac{b}{1-a}\) 所求变为求一个\(i\)满足: \(t\equiv (x_1-\frac{b}{1-a})a^{i-1}+\frac{b}{1-a}\pmod{p}\) \(a^{i-1}\equiv…
Problem Description   The picture indicates a tree, every node has 2 children.  The depth of the nodes whose color is blue is 3; the depth of the node whose color is pink is 0.  Now out problem is so easy, give you a tree that every nodes have K chil…
原文链接https://www.cnblogs.com/zhouzhendong/p/51Nod1123.html 题目传送门 - 51Nod1123 题意 $T$ 组数据. 给定 $A,B,C$,求出使得 $x^A \equiv C \pmod B$ 的所有 $x$,保证解的个数不超过 $\sqrt B$ . $T\leq 100,1\leq A,B,C \leq 10^9$ 题解 先记一下写这一题的感受: 1. 写的过程中代码长度峰值达到过 300 行,好久没写码农题了,感到自己码力大减.…