POJ 2417 baby_step giant_step 小步大步算法 a^x == b(mod n) 求解0<=x<n的值
来源:互联网 发布:淘宝首页全屏海报尺寸 编辑:程序博客网 时间:2024/05/16 15:43
题目照片:http://poj.org/problem?id=2417
题意:求解a^x==b(mod n),==表示同余的意思。
解法:大步小步算法裸题,我也不懂这个算法,先存个模板,应该有用。 复杂度是O(sqrt(n)*log(n))的
///POJ 2417#include <stdio.h>#include <cmath>#include <string.h>#include <stdlib.h>#include <iostream>typedef long long LL;#define MOD 76543int hs[MOD], head[MOD], nxt[MOD], id[MOD], top;void insert(int x, int y){ int k=x%MOD; hs[top]=x, id[top]=y, nxt[top]=head[k], head[k]=top++;}int find(int x){ int k=x%MOD; for(int i=head[k];~i;i=nxt[i]){ if(hs[i]==x){ return id[i]; } } return -1;}int BSGS(int a, int b, int n){ memset(head,-1,sizeof(head)); top=1; if(b==1) return 0; int m=sqrt(n*1.0), j; long long x=1,p=1; for(int i=0; i<m; ++i, p=p*a%n) insert(p*b%n,i); for(long long i=m; ; i+=m){ if((j=find(x=x*p%n))!=-1) return i-j; if(i>n) break; } return -1;}int main(){ int a, b, n;; while(~scanf("%d%d%d",&n,&a,&b)){ int ans=BSGS(a,b,n); if(ans==-1) printf("no solution\n"); else printf("%d\n", ans); } return 0;}
0 0
- POJ 2417 baby_step giant_step 小步大步算法 a^x == b(mod n) 求解0<=x<n的值
- poj 2417 Discrete Logging 求解模方程a^x=b(mod n),n为素数+模板题(baby_step giant_step)
- poj 2417 Discrete Logging(A^x=B(mod c),普通baby_step)
- POJ 2417 Discrete Logging (求解模方程a^x≡b(mod n))
- Poj 2417 Discrete Logging (Baby Step Giant Step 解 a^x = b (mod n) n为素数)
- 求解x=a^b(mod m)
- 求解x=a^b(mod m)
- HDU 2815 Mod Tree 解a^x = b(mod n)非互质
- hdu 3930 X^N=a(mod) p 求X
- POJ 2417 Discrete Logging (baby_step,giant_step算法)
- Baby-step giant-step 解高次同余方程a^x=b(mod n) 模版
- 求解x=a^b(mod m)的几种方法
- 2^x mod n = 1
- ZOJ1489 2^x mod n = 1
- HDU1395:2^x mod n = 1
- zoj1489-2^x mod n = 1
- hdu1395-2^x mod n = 1
- hdu1395 2^x mod n = 1
- 中山大学软件工程操作系统实验二报告
- D(1909)Perfect Chocolate
- unix环境高级编程.chapter 1.1
- mongodb3.X版本 用户管理
- Codeforces801B Valued Keys
- POJ 2417 baby_step giant_step 小步大步算法 a^x == b(mod n) 求解0<=x<n的值
- 接笔记一,涉及struts2登录的
- 4月份英语总结博客
- 一个小爬虫 从网页获取信息(图片下载)
- C++类之线程管理
- Mysterious Bacteria
- 【Ukey】C#或者Java对Ukey的判断操作
- 前缀中的周期---非优化KMP算法的运用
- JS解惑--闭包