BSGS(Baby Steps,Giant Steps)算法详解
2024-10-12 15:27:44
BSGS(Baby Steps,Giant Steps)算法详解
简介:
此算法用于求解 Ax≡B(mod C);
由费马小定理可知;
x可以在O(C)的时间内求解; 在x=c之后又会循环;
而BSGS(拔山盖世)算法可以在O(C0.5)的时间内求解出;
内容:
主要运用分块的思想;
将 x=i*m-j,其中m=ceil(sqrt(C));
A(i*m-j)≡B(mod C);
Ai*m / Aj ≡ B(mod C);
Ai*m ≡ B * Aj(mod C);
枚举每个j(0<=j<=m),将B*Aj存入map;
再枚举每个i(0<=i<=m),判断Ai*m是否在map中存在值;
例题:
[SDOI2011]计算器 题解见http://www.cnblogs.com/WQHui/p/7592381.html;
最新文章
- java.sql.SQLException: ORA-00972: 标识符过长
- 循序渐进Python3(十二) --1-- &#160;web框架之django
- AspNet MVC 缓存
- QGrphicsView, QGraphicsScene 和 QGraphicsItem 的区别
- Gunicorn + Django 部署
- 第一个Sprint冲刺第二天
- 简明python教程 --C++程序员的视角(八):标准库
- GPIO 配置之ODR, BSRR, BRR 详解
- SQL优化 csdn
- [转]Oracle SQL性能优化
- 用Thread类创建线程-2
- 通过Shell和Redis来实现集群业务中日志的实时收集分析
- mysql中 union是什么鬼
- HDU 2412 Farm Irrigation
- JNI 方法注册与签名+BufferedReader使用readLine问题
- CSS margin负值学习及实际应用
- NPOI的一些基本操作
- sql server2016里面的json功能 - 转
- waffit防火墙检测
- web-day1