BSGS

  给定\(a,b,p\),求\(x\)使得\(a^x\equiv b \pmod p\),或者说明不存在\(x\)
  只能求\(\gcd(a,p)=1\)的情况
  有一个结论:如果有解则必然存在\(x\in\left\{0\ldots p-1\right\}\)的解
  设\(q=\lceil\sqrt p\rceil,x=cq-d\)
  \[a^{cq-d}\equiv b\pmod p\]
  \[a^{cq}\equiv b\times a^d\pmod p\]
  先枚举\(d\in\left\{1\ldots q\right\}\),把\(b\times a^d \pmod p\)塞进哈希表里
  再枚举\(c\in\left\{1\ldots q\right\}\),查询\(a^{cq}\)是否在哈希表内
  最后\(cq-d\)就是答案
  

扩展BSGS

  能求\(\gcd(a,p)\neq1\)的情况。
  设\(s=\gcd(a,p)\)
  若\(s\nmid b\)则无解
  设\(a'=\frac{a}{s},b'=\frac{b}{s},p'=\frac{p}{s}\)
 \[(a's)^x\equiv b's\pmod {p's}\]
 \[a'a^{x-1}\equiv b' \pmod {p'}\]
  这样每次\(p\)都会除以一个大于\(2\)的数,这个过程一定会停止(\(O(\log p)\)次)
  最后会得到
 \[da^{x-k}\equiv b\pmod p\]
  把计算出来的\(x\)加上\(k\)输出就可以了。
  但是可能存在小于\(k\)的答案
  直接枚举\(0\)~\(k\),判断是否合法。

一些其他的东西

  sdchr大爷说可以直接按照普通BSGS的方法做,然后把我的随机数据过掉了,但被我hack了。
  表面上看当\(\gcd(a,p)\neq1\)时BSGS也可以做,但是,
\[a^{cq-d}\equiv b\pmod p\Rightarrow a^{cq}\equiv ba^d\pmod p \]
\[a^{cq-d}\equiv b\pmod p\nLeftarrow a^{cq}\equiv ba^d\pmod p\]
  1式能推出2式,但2式不能推出1式(要两边同时除以\(a\)的逆元)
  所以这是不对的

转载于:https://www.cnblogs.com/ywwyww/p/8510957.html

BSGS扩展BSGS相关推荐

  1. 【学习笔记】原根 / BSGS / 扩展BSGS证明及模板

    文章目录 原根 BSGS大步小步算法 扩展BSGS 原根 如果两个整数a,ba,ba,b互质,则有aϕ(b)%b=1a^{\phi(b)}\%b=1aϕ(b)%b=1 定义模bbb意义下的aaa的阶为 ...

  2. [模板] BSGS/扩展BSGS

    简介 前置知识: 快速幂&&O(1)快速乘 [模板] 数学基础:快速幂/乘/逆元/exGCD/(ex)CRT/(ex)Lucas定理 转载于:https://www.cnblogs.c ...

  3. (扩展)BSGS与高次同余方程

    前言: 今天更BSGS算法.俗称大步小步算法(Big-Step G--Step),又称拔山盖世.北上广深.白色狗屎 . 问题: 求解指数同余方程:ax≡b(modp)a^{x}\equiv b(mod ...

  4. BSGS与扩展BSGS

    这里写目录标题 概述 普通BSGS 解题步骤 代码模板 扩展BSGS 解题步骤 代码模板 经典例题 洛谷P4861 按钮 概述 主要用于解决an=b(mod p) 问题,求解最小非负整数n,使其满足左 ...

  5. NOI数学:大步小步(Baby Step Giant Step,BSGS)算法

    BSGS算法求 高次同余方程:1.可爱的质数 2.计算器 BSGS算法求 高次同余方程:1.可爱的质数 2.计算器_啦啦啦32421的博客-CSDN博客 大步小步算法(BSGS)及扩展 & b ...

  6. 数论 —— 高次同余方程与 BSGS 算法

    [概述] BSGS(Baby Step Giant Step)算法,又称大小步算法,其主要用于解形如  的高次同余方程中的 x,其核心思想是分块. 当 A 与 C 互质时,通过费马小定理: 可知,当  ...

  7. P4884-多少个1?【BSGS】

    正题 题目链接:https://www.luogu.com.cn/problem/P4884 题目大意 求一个最小的nnn使得nnn个连续的111其在模mmm意义下等于kkk. 6≤m≤1011,0& ...

  8. P3306-[SDOI2013]随机数生成器【BSGS】

    正题 题目链接:https://www.luogu.com.cn/problem/P3306 题目大意 给出一个p,a,b,x1,tp,a,b,x_1,tp,a,b,x1​,t,有xi=axi−1+b ...

  9. Codeforces 1106F Lunar New Year and a Recursive Sequence (数学、线性代数、线性递推、数论、BSGS、扩展欧几里得算法)...

    Codeforces 1106F Lunar New Year and a Recursive Sequence (数学.线性代数.线性递推.数论.BSGS.扩展欧几里得算法) 哎呀大水题..我写了一 ...

最新文章

  1. 医工汇聚 智竞心电 | 首届中国心电智能大赛开启招募
  2. 二叉查找树(二叉排序树)创建,插入,删除操作。
  3. 使用Apache Archiva管理Maven仓库
  4. python基础知识~ 等值判断和码
  5. mysql 学习笔记 02创建表
  6. 记腾讯互娱网站布局(1)
  7. php serialize error at offset,PHP Notice: unserialize(): Error at offset XX of XX bytes
  8. 洛谷P1434滑雪(逆向图的遍历搜索递归+记忆化,最长路问题)
  9. mysql排序后如何取最前和最后的数据_天天写order by,你知道Mysql底层如何执行吗?...
  10. H5+APP安卓原生插件开发+离线打包
  11. 边缘检测---Roberts算子
  12. Real Time Rendering 第一章 简介
  13. C# 教你如何做打印表格和排版
  14. 计算机word画铁路,在word中画铁路线.docx
  15. Excel中批量生成标签,批量打印标签。按指定模板批量打印标签
  16. 阿里企业云邮箱怎么申请?企业云邮箱登录界面在哪?
  17. 微信小程序app.json全局配置项
  18. 小米平板4刷入twrp
  19. LeetCode 字符串(简单题)
  20. vue 二维码+条形码识别

热门文章

  1. 初探领域驱动设计(1)为复杂业务而生
  2. unix cut命令
  3. 兼容性好的CSS字体投影
  4. 日均请求量百亿级数据处理平台的容器云实践
  5. kubernetes node节点失效 调度
  6. Android Error:Could not run build action using Gradle installation
  7. JavaScript 编程精解 中文第三版 十一、异步编程
  8. 分布式系统事务一致性解决方案
  9. 【原创】概率DP总结 by kuangbin
  10. Cisco认证(CCNA,CCNP,CCIE)体系中文书籍全集书籍