BSGS模板(慢速)】的更多相关文章

//author Eterna #define Hello the_cruel_world! #pragma GCC optimize(2) #include<iostream> #include<algorithm> #include<cstdio> #include<string> #include<cstring> #include<vector> #include<map> #include<set>…
[算法模板]FFT-快速傅里叶变换 感谢ZYW聚聚为我们讲解FFT~ 思路 我懒,思路和证明部分直接贴链接: rvalue LSJ-FFT与NTT基础 代码 主要思想是利用了单位根特殊的性质(n次单位根后一半幂跟前一半幂取值相等).只是因为式子中奇数次幂还要提出来个\(\omega_n^k\),这个东西只要取个反就好了(即对称性:\(\omega_n^k=-\omega_n^{k+\frac{n}{2}}\)). FFT递归: #include <cstdio> #include <cm…
模板如下: 扩展版本: 求解a^k=b %p 求k,最小的k一定小于p,否则会重复,否则无解 *********************** gcd(a,p)=1时 设k=mi+v m=sqrt(p); i,v<=m a^v=b*(a^-m)^i %p 打表map for i=0~m-1 (a^i,i) for i=0~m-1 check a^v存在 **************************** gcd(a,p)=t时 (A/t)^c*A^(x-c)=B/(t^c) %C/(t^c)…
模板最主要的是自己看得舒服,不会给自己留隐患,调起来比较简单,板子有得是,最主要的是改造出适合你的那一套.                  ——mzz #include<bits/stdc++.h> #define int long long using namespace std; ; struct Hash_Tablet{ int val,nex,id; }edge[mod<<];],num; int a,b,c,ans; void init(){ memset(first,…
就是一道模板题! 这里再强调一下 BSGS 考虑方程\(a^x = b \pmod p\) 已知a,b,p\((2 \le p\le 10^9)\),其中p为质数,求x的最小正整数解 解法: 注意到如果有解,那么一定满足\(0<x<p\) 设\(t=\lfloor \sqrt p \rfloor\) 那么一定有 \((a^t)^c=ba^d \pmod p\) 此时\(x=ct-d(0 \le d <t)\) 因为$$\frac{a{ct}}{ad} = b \pmod p$$ 那么我们…
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2242 第一道BSGS! 咳咳,我到底改了些什么?…… 感觉和自己的第一版写的差不多……可能是long long还有%C的位置的缘故? 不过挺欣赏这个板子的.把它记下来好了. 其讲解:https://blog.csdn.net/clove_unique/article/details/50740412 #include<iostream> #include<cstdio> #i…
题目链接 题目描述非常直接,要求你用快速幂解决第一问,exgcd解决第二问,bsgs解决第三问. emmmm于是现学bsgs 第二问让求最小整数解好烦啊…… 假设我们要求得方程$ax+by=c(mod p)$的最小整数解 令$d=gcd(a,b)$ 我们求得一个解$x_0,y_0$使得$ax_0+by_0=d(mod p)$ 然后$x_0*frac{c}{d}$为最小整数解. #include<cstdio> #include<cstdlib> #include<algori…
generator 2 题意 给出\(x_0,a,b,p\),有方程\(x_i\equiv (a*x_{i-1}+b)(\% p)\),求最小的i,使得\(x_i=v\),不存在输出-1 分析 经过公式运算可以知道,当a!=1时,由等比数列求和我们可以知道,\(v=x_n=x_0*a^n+b*\frac{a^n-1}{a-1}\),化简得\(a^n\equiv \frac{(a-1)v+b}{(a-1)x0+b} (\% p)\) 这样就转化成了bsgs的形式,直接套用bsgs即可.这里需要注意…
题目描述 给定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…
3239: Discrete Logging Time Limit: 1 Sec  Memory Limit: 128 MBSubmit: 729  Solved: 485[Submit][Status][Discuss] Description Given a prime P, 2 <= P < 231, an integer B, 2 <= B < P, and an integer N, 2 <= N < P, compute the discrete logar…
题目大意:给出$P,B,N$,求最小的正整数$L$,使$B^L\equiv N(mod\ P)$. $BSGS$模板题. #include<set> #include<map> #include<queue> #include<stack> #include<cmath> #include<cstdio> #include<vector> #include<bitset> #include<cstring…
蒟蒻哪里有什么总结,只能点击%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…
[BZOJ2242]计算器(BSGS,快速幂) 题面 BZOJ 洛谷 1.给定y.z.p,计算y^z mod p 的值: 2.给定y.z.p,计算满足xy ≡z(mod p)的最小非负整数x: 3.给定y.z.p,计算满足y^x ≡z(mod p)的最小非负整数x. 题解 第一问是裸的快速幂 第二问,因为\(P\)是质数,所以求一下乘法逆元再乘\(z\)就行了,特判\(y\)是\(p\)的倍数时无解 第三问,\(bsgs\)模板 洛谷上的时间: \(map:652ms\) \(Hash:48ms…
[SPOJ]Power Modulo Inverted(拓展BSGS) 题面 洛谷 求最小的\(y\) 满足 \[k\equiv x^y(mod\ z)\] 题解 拓展\(BSGS\)模板题 #include<iostream> #include<cstdio> #include<cstdlib> #include<cstring> #include<cmath> #include<algorithm> #include<set…
注:转载本文须标明出处. 原文链接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. 原根与指标入…
[BZOJ5296][CQOI2018]破解D-H协议(BSGS) 题面 BZOJ 洛谷 Description Diffie-Hellman密钥交换协议是一种简单有效的密钥交换方法.它可以让通讯双方在没有事先约定密钥(密码)的情况下 通过不安全的信道(可能被窃听)建立一个安全的密钥K,用于加密之后的通讯内容. 假定通讯双方名为Alice和Bob,协议的工作过程描述如下(其中mod表示取模运算): 1.协议规定一个固定的质数P,以及模P的一个原根g.P和g的数值都是公开的,无需保密. 2.Ali…
题目链接 \(BSGS\)模板题..不会点这里 #include <cstdio> #include <cmath> #include <map> using namespace std; typedef long long ll; int a, b, p; int fast_pow(int n, int k){ //n^k%p int ans = 1; while(k){ if(k & 1) ans = (ll)ans * n % p; n = (ll)n *…
Discrete Logging Time Limit: 5000MS   Memory Limit: 65536K Total Submissions: 5577   Accepted: 2494 Description Given a prime P, 2 <= P < 231, an integer B, 2 <= B < P, and an integer N, 1 <= N < P, compute the discrete logarithm of N, b…
首先说一下BSGS的一个坑点: 解方程A^x≡B(mod p) 需要特判一个东西=>A%p==B%p==0? 如果相等的话puts("1")反之则无解. 因为如果A%p=0,那么无法移项,导致BSGS算法的错误 进入正题: 一   卡特拉数(C(2*n,n)/(n+1))用于处理01序列里任意位置0的个数>1的情况.. 但知道定义没用,重要的是打表找规律. 善于用next_permutation,搜索等工具找出前几项. 记住卡特兰数的前几项:1 2 5 14 42 132…
搬运自本人的AcWing,所以那里的文章会挺多. 友链(同类文章) :bztMinamoto 世外明月 mlystdcall 新人手册:AcWing入门使用指南 前言 有看到好文欢迎推荐(毛遂自荐也可以的2333).查找的话请自行 F3,菜鸡作者不会搞目录链接. 置顶(常用网站) 查询 OI Wiki OEIS cpp reference 中文站 c++官网 工具 剪贴板 图床(imgbb) 图床(路过) Vjudge 镜像站 udebug Tool Dictionary-Merriam Web…
本文版权归ljh2000和博客园共有,欢迎转载,但须保留此声明,并给出原文链接,谢谢合作. 本文作者:ljh2000 作者博客:http://www.cnblogs.com/ljh2000-jump/转载请注明出处,侵权必究,保留最终解释权! Description Given a prime P, 2 <= P < 231, an integer B, 2 <= B < P, and an integer N, 1 <= N < P, compute the disc…
扩展BSGS Orz zyf……然而他的题解对AC大神的题解作了引用……而坑爹的百度云……呵呵了... 扩展BSGS模板题 /************************************************************** Problem: 2480 User: Tunix Language: C++ Result: Accepted Time:6948 ms Memory:2212 kb ***************************************…
题意很简单,就是给出p,q,求p/q的循环节长度. 由循环小数的循环部分的值等于等比数列求和的值S,列公式得到最简分数分母的值.最终得10^x%q==1(其中q为经过modify之后的值).搞清这些之后,套kuangbin大神的BSGS模板就可以了. 题目链接: http://202.117.120.247/problem.php?id=1077 #include<bits/stdc++.h> using namespace std; //baby_step giant_step // a^x…
$补+写题ing$ 第 1 章 快速幂 序列的第 k 个数 link $solution:$ 板子 A 的 B 次方 link $solution:$ 板子 [NOIP2013] 转圈游戏 link $solution:$ 板子 越狱 link $solution:$ 简单的容斥原理,$m^n-m\times \prod_{i=1}^{n-1} m-1$ 第 2 章 质数 Prime Distance link $solution:$ 先筛掉$[1,\sqrt{R}]$,然后在暴力即可. 质因数…
题目链接:https://codeforces.com/gym/101853 A: ✅ B: (二分图匹配) https://blog.csdn.net/qq_41997978/article/details/89165151(二分图匹配+基础数论+算术分解建图) C: (逆序对) 已过 D:✅ E:✅ https://blog.csdn.net/Link_Ray/article/details/89102023 (状压经典题) F:✅ G: 已过 https://blog.csdn.net/L…
一个蒟蒻来口胡$SG$函数与$SG$定理. 要是发现有不对之处望指教. 首先我们来了解一下$Nim$游戏. $Nim$游戏是公平组合游戏的一种,意思是当前可行操作仅依赖于当前局势. 而经典$Nim$游戏是指,一个地方放了$n$堆棋子,每堆棋子数目$a_i$给定. 两人轮流操作,每次操作从一堆中拿出任意数量的棋子.即最少拿一个,最多拿完. 拿完棋子的人胜. 如果两人都执行最优决策的话,胜负在刚开局时就已经确定了. 而在最有决策下,$Nim$游戏的胜负计算方式是: 若每堆棋子数量a_1^a_2^a_…
Discrete Logging Time Limit: 5000MS   Memory Limit: 65536K Total Submissions: 5865   Accepted: 2618 Description Given a prime P, 2 <= P < 231, an integer B, 2 <= B < P, and an integer N, 1 <= N < P, compute the discrete logarithm of N, b…
BSGS模板题 代码如下 #include <bits/stdc++.h> using namespace std; typedef long long LL; LL fpow(LL a, LL b, LL c) { LL ret = 1 % c; for (; b; b >>= 1, a = a * a % c) { if (b & 1) { ret = ret * a % c; } } return ret; } LL bsgs(LL a, LL b, LL p) {…
<题目链接> 题目大意: P是素数,然后分别给你P,B,N三个数,然你求出满足这个式子的L的最小值 : BL== N (mod P). 解题分析: 这题是bsgs算法的模板题. #include <stdio.h> #include <string.h> #include <iostream> #include <algorithm> #include <string> #include <math.h> #include…
https://www.cnblogs.com/sdzwyq/p/9900650.html 模板: unordered_map<int, int> mp; LL q_pow(LL n, LL k, LL p) { LL ans = 1; if(k == -1) return 0; while(k) { if(k&1) ans = (ans*n) % p; n = (n*n) % p; k >>= 1; } return ans; } int BSGS(int a, int…