exBSGS·BSGS-Senior/扩展的BSGS】的更多相关文章

BZOJ_2242_[SDOI2011]计算器_快速幂+扩展GCD+BSGS 题意: 你被要求设计一个计算器完成以下三项任务: 1.给定y,z,p,计算Y^Z Mod P 的值: 2.给定y,z,p,计算满足xy≡ Z ( mod P )的最小非负整数: 3.给定y,z,p,计算满足Y^x ≡ Z ( mod P)的最小非负整数.   分析: 各种板子题   代码: // luogu-judger-enable-o2 // luogu-judger-enable-o2 #include <std…
蒟蒻哪里有什么总结,只能点击%YL% 还有这位ZigZagK大佬的blog \(\mbox{BSGS}\) 模板题:洛谷P3846 [TJOI2007]可爱的质数 给定\(a,b\)和模数\(\mbox{YL}\),求\(a^x\equiv b(\bmod\mbox{YL})\)中\(x\)的最小非负整数解.保证\(\gcd(a,\mbox{YL})=1\). 设\(k=\lceil\sqrt{\mbox{YL}}\rceil\),令\(x=ky-c\)(\(y\in[1,k],c\in[0,k…
\(\rm{0x01\quad Preface}\) \(emmm\)严格来讲,不应该被算到一个模板里面.因为在我看来模板是人构造出来的,但是这个算法应该是一个解决问题的\(process\)-更像是在解一道数学题,如果\(BSGS\)是定理的话,\(exBSGS\)更像是一个不断转化的过程233(手动@lxa并且溜 \(\rm{0x02\quad Algorithm~Process}\) 今天才发现原来\(\rm{BSGS}\)有两种写法--并且觉得剩下的题解讲的都讲的不是很全的样子233.…
目录 定义 原理 朴素算法 数论分块 例题 Luogu2485 [SDOI2011]计算器 题解 代码 扩展 例题 Luogu4195 [模板]exBSGS/Spoj3105 Mod 代码 之前写了一篇关于BSGS的学习笔记.因为太过老旧,就想修改一些错误,顺便添上扩展BSGS的部分.可惜博客园不能对已发布的随笔修改编辑器,索性重新发出来.旧文已删. 定义 Baby-Step-Giant-Step算法,简称BSGS算法,又称大步小步算法,用于求方程\(a^x\equiv b(\text{mod…
BSGS \(BSGS\)算法又称大步小步\((Baby-Step-Giant-Step)\)算法 \(BSGS\)算法主要用于解以下同余方程 \[A^x\equiv B(mod\ p)\]其中\((A,P)=1\),即\(A\)与\(P\)互质 前置知识 根据欧拉定理\(A^{ \varphi(p)} \equiv1(mod\ p)\),所以\(A^x(mod\ p)\)的循环节为\(\varphi(p)\).也就是说如果上面的方程有解\(x\),那么肯定有\(x \in [0,\varphi…
BSGS: 求合法的\(x\)使得\(a ^ x \quad mod \quad p = b\) 先暴力预处理出\(a^0,a^1,a^2.....a^{\sqrt{p}}\) 然后把这些都存在map里 : \(map[a^x] = x\) 一个合法的x满足\(x = k\sqrt{p} + l\)使得\(a^x = b\),因此可以直接枚举k,于是有: \[a^x = a^{k\sqrt{p}} \cdot a^l = b\] \[a^l = \frac{b}{a^{k\sqrt{p}}} =…
BSGS BSGS,全称叫 BabyStepGiantStep,也就是大步小步 其实还是比较暴力的 它可以\(O(\sqrt p)\)的复杂度内解出: \[a^x\equiv n\pmod p,\gcd(a,p)=1 \] 中\(x\)的值 如果\(\gcd(a,p)\neq 1\)就要用到 exBSGS 了 我们考虑令\(x=im-k,0\le k<m\) 那么原式变为 \[a^{im-k}\equiv n\pmod p \] \[a^{im}\equiv na^k\pmod p \] 那么,…
没什么好说的... --------------------------------------------------------------------- #include<cstdio> #include<cmath> #include<map>   using namespace std;   typedef long long ll;   int MOD;   void gcd(int a, int b, int& d, int& x, int…
\(BSGS(baby-step-giant-step)\)算法是用来解高次同余方程的最小非负整数解的算法,即形如这个的方程: \(a^x\equiv b(mod\ p)\) 其中\(p\)为质数(其实只要(\((a,p)=1\)即可) 首先考虑暴力怎么解:由费马小定理可知\(a^{p-1}\equiv 1(mod\ p)\),也就是说如果在\([0,p-1]\)内无解的话,方程就是无解的.所以我们从小到大枚举\([0,p-1]\)中的每一个数,满足方程就结束.但是这里\(p-1\)并不一定是最…
哎呀大水题..我写了一个多小时..好没救啊.. 数论板子X合一? 注意: 本文中变量名称区分大小写. 题意: 给一个\(n\)阶递推序列\(f_k=\prod^{n}_{i=1} f_{k-i}b_i\mod P\)其中\(P=998244353\), 输入\(b_1,b_2,...,b_n\)以及已知\(f_1,f_2,...,f_{n-1}=1\), 再给定一个数\(m\)和第\(m\)项的值\(f_m\), 求出一个合法的\(f_n\)值使得按照这个值递推出来的序列满足第\(m\)项的值为…
注:转载本文须标明出处. 原文链接https://www.cnblogs.com/zhouzhendong/p/Number-theory.html 数论算法 剩余系相关 学习笔记 (基础回顾,(ex)CRT,(ex)lucas,(ex)BSGS,原根与指标入门,高次剩余,Miller_Robin+Pollard_Rho) 本文概要 1. 基础回顾 2. 中国剩余定理 (CRT) 及其扩展 3. 卢卡斯定理 (lucas) 及其扩展 4. 大步小步算法 (BSGS) 及其扩展 5. 原根与指标入…
从这里开始 离散对数和BSGS算法 扩展BSGS算法 离散对数和BSGS算法 设$x$是最小的非负整数使得$a^{x}\equiv b\ \ \ \pmod{m}$,则$x$是$b$以$a$为底的离散对数,记为$x = ind_{a}b$. 假如给定$a, b, m$,考虑如何求$x$,或者输出无解,先考虑$(a, m) = 1$的情况. 定理1(欧拉定理) 若$(a, m) = 1$,则$a^{\varphi(m)}\equiv 1 \pmod{m}$. 证明这里就不给出,因为在百度上随便搜一…
目录 bsgs问题 或 poj2417: 概述 代码 exbsgs 鸣谢 \(gzy gzy gzy\) bsgs问题 或 poj2417: 给定质数\(p\),给定\(a\),\(b\),\((a,p)=1\) 求出最小的整数x,使得\(a^{x}≡b(mod p)\) 概述 由费马小定理可以知道 \(a^{x+p-1}≡a^{x}≡b(mod p)\) 所以如果有解那\([0,p-1]\)区间内一定会出现解 让\(m=sqrt(p)\) \(x\)可以表示为\(m*i-j\) 那\(m,i,…
题目链接:http://poj.org/problem?id=2417 题目: 题意: 求一个最小的x满足a^x==b(mod p),p为质数. 思路: BSGS板子题,推荐一篇好的BSGS和扩展BSGS的讲解博客:http://blog.miskcoo.com/2015/05/discrete-logarithm-problem 代码实现如下: #include <set> #include <map> #include <queue> #include <st…
例题  poj 2417bsgs  http://poj.org/problem?id=2417 这是一道bsgs题目,用bsgs算法,又称大小步(baby step giant step)算法,或者拔(b)山(s)盖(g)世(s)算法,或者北(b)上(s)广(g)深(s)算法... 题目大意就是 给定a,b,p,求最小的非负整数x,满足  ax ≡ b(mod p) 先令 x = i*m-j,其中 m=ceil(sqrt(p)),ceil是向上取整. 这样原式就变为     ai*m-j =…
5在1e9+9下有二次剩余,那么fib的通项公式就有用了. 已知Fn,求n.注意到[(1+√5)/2]·[(1-√5)/2]=-1,于是换元,设t=[(1+√5)/2]n,原式变为√5·Fn=t-(-1)n·t-1.同乘t并移项,可得t2-√5·Fn·t-(-1)n=0.讨论n的奇偶性,BSGS求二次剩余大力解方程即可.用BSGS求二次剩余是非常简单的,求出其以原根为底的离散对数即可. 注意二次剩余有正负两解,但似乎代进去正根(即√gk=gk/2)就行了,不太明白.以及题目要求最小解,BSGS的…
[BZOJ5296][CQOI2018]破解D-H协议(BSGS) 题面 BZOJ 洛谷 Description Diffie-Hellman密钥交换协议是一种简单有效的密钥交换方法.它可以让通讯双方在没有事先约定密钥(密码)的情况下 通过不安全的信道(可能被窃听)建立一个安全的密钥K,用于加密之后的通讯内容. 假定通讯双方名为Alice和Bob,协议的工作过程描述如下(其中mod表示取模运算): 1.协议规定一个固定的质数P,以及模P的一个原根g.P和g的数值都是公开的,无需保密. 2.Ali…
题目描述 给定a,b,p,求最小的非负整数x 满足a^x≡b(mod p) 若无解 请输出“orz” 输入输出格式 输入格式: 三个整数,分别为a,b,p 输出格式: 满足条件的非负整数x 输入输出样例 输入样例#1: 5 2 7 输出样例#1: 4 说明 pow有误差 数据保证所有变量都在int范围内 标程 bsgs模板问题 解决bsgs的问题,我们首先可以吧题目a^x=b(mod)p转化为a^(i*m)=b*a^j 然后枚举b*a^j,a^(i*m) 暴力求解 #include<iostre…
关于一些逆元知识的拓展 刚艹完一道 提高- 的黄题(曹冲养猪) ,于是又来混一波讲解了 ——承接上文扫盲篇   四.Lucas定理(求大组合数取模)   题外话 这里Lucas定理的证明需要用到很多关于组合数的定理知识,  那么关于一些组合数的知识,详情你可以看这里:Binamoto' blog. 再讲讲lucas定理这个东西(扩展lucas就不讲了,因为不大会…咳咳,然后也不怎么会用到吧) 基本公式: C(n,m) ≡ C(n/p,m/p)*C(n%p,m%p) (mod p) (也就是: C…
bzoj 500题纪念 总结一发题目吧,挑几道题整理一下,(方便拖板子) 1039:每条线段与前一条线段之间的长度的比例和夹角不会因平移.旋转.放缩而改变,所以将每条轨迹改为比例和夹角的序列,复制一份翻转后的序列,直接上AC自动机即可.注意特判 1125:hash+splay 1183:digit-product只可能是2,3,5,7的积,枚举digit-product进行dp即可 1301:每个点和每个边只能被删除一次,随便搞 1313:上下界最大流 1471:考虑容斥,枚举两条路径相交的位置…
填坑 orz w_x_c_q w_x_c_q的模拟赛(150pts,炸了) money 题目背景: 王小呆又陷入自己的梦里.(活在梦里...) 题目描述: 王小呆是一个有梦想的小菜鸡,那就是赚好多好多的钱.现在机会来了,在他面前是一个迷宫,一共有N个点,M条路,王小呆可以在这些路上随便走,并且最重要的是,这些路上都有着数额不同的钱,王小呆每走过一条路,就可以得到这条路上所有的钱(我们认为王小呆特别贪婪,所以他用来装钱的袋子是无穷大的...),因为王小呆的梦很神奇,所以当一条路上的钱被他取走之后,…
部分来自百度百科.其他的博客 一.必须会的 1.暴力: DFS.BFS.灌水法搜索.回溯搜索.记忆化搜索.启发式搜索.最优性剪枝.可行性剪枝 2.贪心 3.模拟 4.骗分 二.基础算法 1.图论:SPFA.Floyd.Dijkstra.Tarjian.topo排序.Prim.Kruskal 欧拉(回)路.哈密顿回路 2.树:并查集.堆.线段树/树状数组.LCA 3.分治:二分查找.二分答案.求逆序对 4.数论:GCD.BSGS.扩展欧几里得求同余方程.Catalan数.快速幂.快速乘法.差分约束…
DP P2723 丑数 Humble Numbers(完成时间:2019.3.1) P2725 邮票 Stamps(完成时间:2019.3.1) P1021 邮票面值设计(完成时间:2019.3.1) P1070 道路游戏(完成时间:2019.3.2) P2558 [AHOI2002]网络传输(完成时间:2019.3.2) blog2(完成时间:2019.3.2) P2831 愤怒的小鸟(完成时间:2019.3.2) P3160 [CQOI2012]局部极小值(完成时间:2019.3.3) P1…
目录 1. 判断素数(素性测试) 1. \(O(\sqrt n)\) 试除 2. Miller-Rabin 素性测试 * 欧拉函数 2. 逆元 3. exgcd(扩展欧几里得) 4. 离散对数(BSGS 算法求解) 5. CRT(中国剩余定理) 法一:大数翻倍法(zhx 的神仙解法) 法二:用扩展欧几里得解 6. 线性筛(xxs) 1. 筛素数 2. 筛积性函数(\(\varphi\),\(\mu\)) 7. 数论函数与狄利克雷卷积 1. \(\mu\) 1. 定义与性质 2. 例题 2. 狄利…
嘟嘟嘟 这不就是个bsgs板儿嘛. 顺便就复习了一下bsgs和哈希表. 头一次觉得我的博客这么好用,一下就懂了:数论学习笔记之高次不定方程 这里再补充几点: 1.关于这一段代码: int S = sqrt(c), p = 1; for(int i = 0; i < S; ++i) { if(p == b) return i + cnt; insert(1LL * p * b % c, i); p = 1LL * p * a % c; } for(int i = S, q = p; i - S +…
#include <iostream> #include <algorithm> #include <cstdio> #include <cstring> #include <cmath> using namespace std; typedef long long LL; ; ; ; LL hs[mod],id[mod],head[mod],_next[mod]; int top; inline void _inset (LL x, LL y)…
概述:本节讲述Arcgis for Js加载ArcgisServer和GeoServer发布的wms服务. 1.定义resourceInfo var resourceInfo = { extent: new Extent(-126.40869140625,31.025390625,-109.66552734375,41.5283203125,{wkid: 4326}), layerInfos: [], version : '1.1.1' }; 2.加载ArcgisServer的wms var a…
题解 BSGS直接解出a和b来即可 代码 #include <bits/stdc++.h> #define fi first #define se second #define pii pair<int, int> #define pdi pair<db, int> #define mp make_pair #define pb push_back #define enter putchar('\n') #define space putchar(' ') #defin…
756: 破解 D-H 协议 时间限制: 1 Sec  内存限制: 128 MB提交: 78  解决: 18[提交] [状态] [讨论版] [命题人:admin] 题目描述 Diffie-Hellman密钥交换协议是一种简单有效的密钥交换方法.它可以让通讯双方在没有事先约定密钥(密码)的情况下,通过不安全的信道(可能被窃听)建立一个安全的密钥K,用于加密之后的通讯内容.假定通讯双方名为Alice和Bob,协议的工作过程描述如下(其中mod表示取模运算):协议规定一个固定的质数P,以及模P的一个原…
\(BSGS\)用于解决这样一类问题: 求解\(A^x ≡B(modP)\)的最小\(x\),其中\(P\)为质数. 这里我们采用分块的方法,把\(x\)分解为\(i *t-b\)(其中\(t\)是分块大小) .根据模意义下逆元的性质,\(x\)的大小一定\(<=phi(p)\)即\(p - 1\),所以经过移项和进行存在性对比,我们就可以\(O(N)\)求出答案. int BSGS (int A, int B, int P) { int t = (int) ceil (sqrt (P)); f…