博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
BZOJ3239Discrete Logging——BSGS
阅读量:6190 次
发布时间:2019-06-21

本文共 930 字,大约阅读时间需要 3 分钟。

题目大意:给出$P,B,N$,求最小的正整数$L$,使$B^L\equiv N(mod\ P)$。

$BSGS$模板题。

#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define ll long longusing namespace std;int T,k;ll y,z,p;ll G;map
ind;ll quick(ll x,ll y,ll mod){ ll res=1ll; while(y) { if(y&1) { res=res*x%mod; } x=x*x%mod; y>>=1; } return res;}void solve(){ ll n=ceil(sqrt(p)); if(y%p==0&&z) { printf("no solution\n"); return ; } ind.clear(); ll sum=z%p; ind[sum]=0; for(ll i=1;i<=n;i++) { sum=sum*y; sum%=p; ind[sum]=i; } sum=quick(y,n,p); ll num=1ll; for(int i=1;i<=n;i++) { num*=sum,num%=p; if(ind.find(num)!=ind.end()) { printf("%lld\n",((n*i-ind[num])%p+p)%p); return ; } } printf("no solution\n");}int main(){ while(scanf("%lld%lld%lld",&p,&y,&z)!=EOF) { solve(); }}

转载于:https://www.cnblogs.com/Khada-Jhin/p/10625415.html

你可能感兴趣的文章
SpringBoot为什么没有web.xml了(转)- 深度好文
查看>>
字符编码
查看>>
远程管理FTP
查看>>
Python_005 时间和日期
查看>>
Tomcat介绍 安装jdk 安装Tomcat
查看>>
面试题—宏、函数、宏函数、inline函数的区别与联系
查看>>
Git系列一之安装管理
查看>>
python学习之路
查看>>
Git学习 项目版本控制
查看>>
centos6.4升级Python过程总结
查看>>
交换机的几种配置方法
查看>>
rabbitmq 关于guest用户权限的学习
查看>>
map和reduce的数量由什么决定?
查看>>
局域网IP-MAC绑定方案
查看>>
闲聊几句
查看>>
AWS跨语言迁移学习技术再有新进展 模型训练AI日语能力
查看>>
Shell脚本中的逻辑判断
查看>>
java io文件流
查看>>
Ubuntu之apt-get常用命令
查看>>
如何快速剪切视频 剪切视频用什么软件好 教你怎么快速剪切视频片段
查看>>