首页 > TAG信息列表 > bsgs

BSGS算法 || POJ2417 || luogu P3846

吐了。。。写完poj2417之后意识到poj不支持stl和__int128。。。你好歹是个大学的软件,不管你们acmer的吗。。 鬼才写快速乘和hash。不让我用__int128和map我就不交poj上了。发现luogu有一模一样的板子题。 题目:P3846 [TJOI2007] 可爱的质数/【模板】BSGS 题意:       讲一下bsg

【模板】BSGS

给你\(a,b,p\in \mathbb{N}_+\),请解出方程\(a^x\equiv b\pmod p\)的最小解\(x\in\mathbb{N}_+\)。 #include <stdio.h> #include <map> #define ull unsigned long long #define ll long long ll light_multi(ll _a,ll _b,ll _p) { _a %= _p, _b %= _p;

Baby_Step_Gaint_Step(BSGS) 算法

\(BSGS\) 算法,又称 “北(\(B\))上(\(S\))广(\(G\))深(\(S\))” 算法,“拔山盖世”算法,可以在 \(O(\sqrt{n})\) 的复杂度内求解离散对数问题。 题目描述: 给定质数 \(p\) 和整数 \(a, n\),求最小的非负整数 \(m\) ,满足 \(a^m \equiv n(mod\ \ p)\) 。 算法分析: 最暴力的算法就是每句每一个 \(

exBSGS

目录exBSGSP4195 【模板】扩展 BSGS/exBSGS exBSGS P4195 【模板】扩展 BSGS/exBSGS

BSGS 大步小步算法

BSGS 大步小步算法 \(Baby~Step, Giant~Step\),大步小步算法(轻量级算法,求解高次同余方程)。 思路 先上例题:给定整数 \(a,b,p\),其中 \(\mathbf{a,p}\) 互质,求一个非负整数 \(x\),使得 \(a^x\equiv b\pmod p\) 朴素算法概述: 考虑一个暴力算法,在 \(\bmod~p\) 的意义下,\(a^x\) 显然有一个

浅谈BSGS和EXBSGS

我的 BSGS 和各位犇犇的差不多,但是不需要求逆元 Luogu [ TJOI2007 ] 可爱的质数 原题展现 题目描述 给定一个质数 \(p\),以及一个整数 \(b\),一个整数 \(n\),现在要求你计算一个最小的非负整数 \(l\),满足 \(b^l \equiv n \pmod p\)。 输入格式 仅一行,有 \(3\) 个整数,依次代表 \(p, b,

【学习笔记】BSGS 算法

引入 BSGS(baby-step giant-step),即大步小步算法,常用于求解离散对数问题。该算法可以在 \(O(\sqrt p)\) 的时间复杂度内求解 \[a^x \equiv b \pmod p \]第一部分:\(a \perp p\) 我们将求解的答案 \(x\) 设为 \(km-c \ (c < m)\) 的形式,即 \[a^{km-c} \equiv b \pmod p \]在 \(a \perp

BSGS 离散对数

前言 通常,高中及以下的数学研究的都是连续数学为主的. 想到对数函数,大多会想到如下的函数图像 : (图片由 desmos 绘制) 但是模意义下的对数就有所不同. 模型 试求解以下方程 : \[\large a^x \equiv b \pmod p \]即模意义下的求对数. BSGS 算法 全称 Baby Step Giant Step 算

#费马小定理,BSGS#BZOJ 3285 离散对数解指数方程

题目 求最小的正整数 \(x\) 满足 \(g^{ax+b}\equiv c\pmod p\) 其中 \(p\) 是一个质数, \(g,a,b,c\leq 10^{1000000},p\leq 2^{31}\) 分析 先将 \(g^a\)和 \(g^b\) 用费马小定理求出来, 问题就转换成 \(b'\times {a'}^x\equiv c'\pmod p\) 这个直接套用 BSGS 就可以了 代码 #inclu

bsgs学习笔记

bsgs 问题一: 若 ( a , p ) = 1 ,   

[模板] BSGS

[模板] BSGS 求一种特殊同余方程,\(a^x≡b\ (mod \ P)\) 的最小整数解,其中 \(a \ P\) 互质 的一种算法。 又叫做 Baby Step,Giant Step(大步小步)算法。 算法 设 \(x=i*t-j\),其中 \(i=\sqrt{p}\) ,\(0\leq j \leq t-1\),则方程变为 \(a^{i*t-j}\equiv b\pmod{p}\)。 移项可得,\(a^{i

HDU6956 Pass! 常系数齐次线性递推 BSGS

HDU6956 Pass! 常系数齐次线性递推 题意 \(n\)个人玩球,初始时\(1\)号发球,发球可以发给除了自己的任意一个人 问最后发到\(1\)号的方案数 分析 \(dp[n][0/1]\)表示经过\(n\)次发球后回到\(1\)号位/不回到\(1\)号位的方案数 其中\(N\)表示总人数 那么可以轻易列出转移方程 \[dp[n][

同余方程 A^x = B (mod C)的解 - BSGS/exBSGS - 洛谷BSGS题单

文章目录 模板题目(来自洛谷的BSGS题单)[TJOI2007] 可爱的质数/【模板】BSGS[SDOI2011]计算器多少个1?[SDOI2013] 随机数生成器【模板】扩展 BSGS/exBSGS【XR-1】快乐肥宅[CQOI2018]破解D-H协议CF1106F Lunar New Year and a Recursive Sequence 这波不写详解了,OI-Wiki有

P4195 【模板】扩展BSGS

题目 题目 思路 先把exBSGS变成普通BSGS。 我们这样做: a x ≡ b (   m

BZOJ3122: [Sdoi2013]随机数生成器(BSGS)

题意 题目链接 Sol 这题也比较休闲。 直接把\(X_{i+1} = (aX_i + b) \pmod P\)展开,推到最后会得到这么个玩意儿 \[a^{i-1} (x_1 + \frac{b}{a-1}) - \frac{b}{a-1} \equiv T \pmod P \] 然后再合并一下就可以大力BSGS了。 有些细节需要特判一下 #include<bits/stdc++.h> #defin

扩展 BSGS

首先你要知道什么是 BSGS。 BSGS 用于求解形如 \(a^x\equiv b\pmod p\) 的高次同余方程,其中保证 \(p\) 为质数。 根据费马小定理定理,当 \(p\) 为质数时,\(a^{p-1}\equiv 1\pmod p\)。 所以当 \(x\) 有解 \(>p-1\) 时,也必然有 \(y=x-(p-1)\) 为方程的解,换言之,保证 \(0\sim p-1\) 内

BSGS(扩展篇,思路+详解)

扩展篇问题:方法:题目: 扩展篇 问题: 当 p , a p,a p,a可能不互质时,求 a

『笔记』BSGS

写在前面 开始之前先来两首 \(music\) 简介 BSGS(baby-step giant-step),大步小步算法。 又被称为拔山盖世算法,又被称为北上广深算法。。。。 作用 求解 \[a^x \equiv b \pmod p \]其中 \(a \perp p\) ,方程的解 \(x\) 满足 $ 0 \leq x < p$ 且数据范围较大,无法直接枚举在 \(O(p)

题解P4454 [CQOI2018]破解D-H协议

题面比较长,但其实就是一道板子题 根据题意, \(g^a\equiv A(mod~p),g^b\equiv B(mod~p)\),可以直接通过BSGS求出 \(a,b\) 的值,然后直接用快速幂算出来即可 关于BSGS,可以看看我的博客 代码 #include<iostream> #include<cmath> #include<unordered_map> using namespace std; typ

2021-03-05

掌握情况 汪元森学长 - 图论 欧拉路径 ★★★欧拉回路 ★★最短路 ★★★★差分约束 ★★★并查集 ★★★最小生成树 ★★★拓扑排序 ★★★★Tarjan ★★★桥 割点 点双 ★2 - SAT ★★二分图匹配 ★★网络流 ★线段树 ★★★树状数组 ★★★★★ 杨雅儒学长 - 数学 - 字符

P3846 [TJOI2007] 可爱的质数/【模板】BSGS

稍后更新 题面 题意: 给定\(p,b,n\),求满足\(b^{x}\equiv n\ (mod\ p)\)的最小的\(x\)的值 算法分析: 根据题意我们很容易想到这个题用\(BSGS\)(大步小步算法或北上广深或拔山盖世)来做,\(BSGS\)就是用来处理这一类问题的 \(BSGS\)中的\(p\)为质数 实现: 我们考虑柿子\(b^{x}\equiv n\ (m

模板 BSGS

BSGS存在的目的是求中x的解,BSGS算法要求A与C互质,且C为质数。 #pragma warning(disable:4996) #include<iostream> #include<algorithm> #include<bitset> #include<tuple> #include<unordered_map> #include<fstream> #include<iomanip> #include<

[模板][数学] BSGS

https://oi-wiki.org/math/bsgs/ 所以这个应该也是个优化暴力 map<LL, int>mp; LL BSGS(LL a, LL b, LL p){ LL lim = ceil(sqrt(p)); if(!p % a){ return -1; } for(int i = 0; i <= lim; i++){ mp[FMul(

BSGS

BSGS 前置芝士 \(Baby-Step-Giant-Step\) 算法,即大步小布算法,缩写为 \(BSGS\) 作用 解决类似 \(y^x\equiv z(mod~p)\),给定 \(y,z,p>=1\) 求解 \(x\) 的问题 (普通的 \(BSGS\) 只能求解 \(gcd(y,p)=1\) 的情况) 推导过程 设 \(x=a*m+b,m=\lceil \sqrt p \rceil,a\in[0,m),b\in[0,m)\)

【知识点】BSGS

Big-Step-Giant-Step: 用于解形如$a^{x}\equiv b(mod\ p)$式的方程。 考虑分块,令$n=\sqrt{p},x=rn-s$,则有 $a^{rn-s}\equiv b(mod\ p)$ $a^{rn}\equiv ba^{s}(mod\ p)$ 分别在$[1,n]$的范围内枚举$r,s$并用$map$记录模数即可。 复杂度$O(\sqrt{p})$。   代码([TJOI2007]可爱的质数):