大步小步算法模板题, poj2417

news/2025/1/13 8:08:53/

大步小步模板

(hash稍微有一点麻烦, poj不支持C++11略坑)

#include <iostream>
#include <vector>
#include <cstring>
#include <cstdio>
#include <cmath>
#include <map>
#define pb push_back
#define fi first
#define se second
#define mk make_pair
using namespace std;
typedef long long LL;
typedef pair<int, int> PII;
LL A, B, P, phi, T;
const int MOD = 1e6+123456;vector<PII> H[MOD+5];
LL qpow(LL a, LL b, LL P){LL ans = 1; for(; b; b >>= 1, (a*=a)%=P) if(b&1) (ans*=a)%=P; return ans;
}inline void Hinsert(LL x, int v){ H[x%MOD].pb(mk(x, v)); }
inline void Herase(LL x) {  H[x%MOD].clear(); }
inline int Hfind(LL x){int u = x%MOD;for(int i = 0; i < H[u].size(); i++) if(H[u][i].fi == x) return H[u][i].se;return 0;
}int main()
{while(scanf("%lld %lld %lld", &P, &A, &B) != EOF){phi = P-1;T = sqrt(phi+0.5);int i;LL At = A, AA;for(i = 1; i <= T; Hinsert(At*B%P, i), i++, (At*=A)%=P);AA = qpow(A, T, P); At = AA;for(i = 1; i*T <= P && !Hfind(At); i++, (At*=AA)%=P); //<=P 恰好可以覆盖0~P-1这些情况if(Hfind(At)){ printf("%lld\n", i*T - Hfind(At)); }else printf("no solution\n");for(At = A, i = 1; i <= T; Herase(At*B%P), i++, (At*=A)%=P);}
}

 

转载于:https://www.cnblogs.com/Saurus/p/6572628.html


http://www.ppmy.cn/news/228813.html

相关文章

POJ 2417 Discrete Logging【大步小步

裸的BSGS 安利这个blog&#xff0c;我觉得讲得很靠谱 顺便BSGS真的不用求逆元&#xff0c;既然可以设xkab&#xff0c;不如直接设成xka-b&#xff0c;乘到那边就完事了 不用求但是还是要用到逆元的思想 以上 #include<cstdio> #include<algorithm> #include&l…

学习使用常用的windbg命令(u、dt、ln、x)(转)

详细 &#xff08;1&#xff09;u命令&#xff08;反汇编&#xff09; &#xff08;2&#xff09;dt命令&#xff08;查看数据结构&#xff09; &#xff08;3&#xff09;ln命令&#xff08;查找就近的符号&#xff09; &#xff08;4&#xff09;x命令&#xff08;显示模…

真机读取u盘里面的图片并显示

做了很久的相册功能&#xff0c;真不容易&#xff0c;边做边学&#xff0c;而且还没有做完&#xff0c;因为想从ec换成as&#xff0c;所以在as downloads的时候我就先把过程中的一些问题和知识点先记下来。 首先&#xff0c;项目中使用了&#xff0c;aidl&#xff0c;官方解释是…

linux PC进不了pe 引导,【U盘模式无法引导进入pe系统】u盘启动无法进入pe系统_电脑无法进入pe系统-系统城...

2016-04-20 19:06:49  浏览量:4304 使用U盘PE装系统已经非常流行,特别是在电脑无法启动时,可以通过U盘PE给电脑重新安装系统,那么要怎么进入U盘PE系统呢?下面系统城小编就教大家怎么用U盘进入PE系统的方法。 2017-03-01 17:01:06  浏览量:10974 pe是装系统最常用到的…

poj2417: bsgs算法模板

bsgs算法用来解决有关A^x ≡ B (mod C)的方程, 求x 把x看成 i*m-j&#xff0c;上面的式子就可以变成A^(i * m - j) ≡ B (mod C) > A^(i * m) ≡ B * A^j (mod C) 具体解释看这个&#xff1a;https://blog.csdn.net/clover_hxy/article/details/50683832 这个博客是…

洛谷P2417 课程解题报告

课程 P2417 技术统计 难度 提高/省选- 用时 1h 提交次数 7 unaccept 次数 5 ac次数 2 题意概括 是否可以完全匹配 数据范围 n ≤ 100 , m ≤ 20000 n\le 100,m\le20000 n≤100,m≤20000 解法一、 知识点 匈牙利算法二分图匹配 解法概括 匈牙利算法的板子题&#x…

外接设备读取u盘里面的图片并显示

做了很久的相册功能&#xff0c;真不容易&#xff0c;边做边学&#xff0c;而且还没有做完&#xff0c;因为想从ec换成as&#xff0c;所以在as downloads的时候我就先把过程中的一些问题和知识点先记下来。 首先&#xff0c;项目中使用了&#xff0c;aidl&#xff0c;官方解释是…

学计算机需要外接显示器吗,读设计专业,上大学配什么电脑好!

原标题&#xff1a;读设计专业&#xff0c;上大学配什么电脑好&#xff01; 看点 设计是艺术专业的老大哥&#xff0c;在校生最多的艺术专业。而现在读设计专业&#xff0c;绝对离不开电脑&#xff0c;因为需要用电脑制作很多效果。那么艺术生进入大学&#xff0c;学习设计&…