正题

题目链接:https://www.luogu.org/problemnew/show/P3846


题目大意

BL≡N(modP)B^L\equiv N(mod\ P)BL≡N(mod P)
求最小的LLL。


解题思路

首先为了顺眼改一下变量名
Ax≡B(modP)A^x\equiv B(mod\ P)Ax≡B(mod P)
然后我们设x=i∗t−j(0≤i≤t,0≤j≤t−1)x=i*t-j(0\leq i\leq t,0\leq j\leq t-1)x=i∗t−j(0≤i≤t,0≤j≤t−1)其中t=⌈P⌉t=\lceil \sqrt P\rceilt=⌈P​⌉
这样xxx就可以表示任何值
Ai∗t−j≡B(modP)A^{i*t-j}\equiv B(mod\ P)Ai∗t−j≡B(mod P)
(At)i≡B∗Aj(modP)(A^t)^i\equiv B*A^j(mod\ P)(At)i≡B∗Aj(mod P)
那我们可以枚举jjj的所有值并用hashhashhash保存下来B∗Aj%PB*A_j\%PB∗Aj​%P的所有可能值。

然后枚举iii让(At)i%P(A^t)^i\% P(At)i%P与B∗AJ%PB*A_J\%PB∗AJ​%P的值匹配就好了。

因为这里是用mapmapmap实现的

时间复杂度:O(nlogn):O(\sqrt n\ log\sqrt n):O(n​ logn​)


codecodecode

#include<cstdio>
#include<algorithm>
#include<cstring>
#include<cmath>
#include<map>
#define ll long long
using namespace std;
ll p,b,n,ans=1e18,t;
map<ll,ll> v;
ll power(ll x,ll b)
{ll ans=1;while(b){if(b&1) ans=ans*x%p;x=x*x%p;b>>=1;}return ans;
}
int main()
{scanf("%lld%lld%lld",&p,&n,&b);t=(int)sqrt(p)+1;for(ll i=0;i<t;i++){ll val=b*power(n,i)%p;v[val]=i;}n=power(n,t);if(n==0) {if(!b) printf("1");else printf("no solution");return 0;}for(ll i=0;i<=t;i++){ll val=power(n,i);ll j=v.find(val)==v.end()?-1:v[val];if(j>=0&&i*t-j>=0) ans=min(ans,i*t-j);}if(ans==1e18) printf("no solution");else printf("%lld",ans);
}

P3846-[TJOI2007]可爱的质数【BSGS,数论】相关推荐

  1. 【洛谷P3846】【TJOI2007】—可爱的质数(BSGS模板)

    传送门 BSGSBSGSBSGS(又名北上广深算法)用于求解ax≡b(mod p)(p∈prime)a^x \equiv b(mod\ p)(p\in prime)ax≡b(mod p)(p∈prim ...

  2. 牛客练习赛44 C 小y的质数 (数论,容斥定理)

    链接:https://ac.nowcoder.com/acm/contest/634/C 来源:牛客网 题目描述 给出一个区间[L,R],求出[L,R]中孪生质数有多少对. 由于这是一个区间筛质数的模 ...

  3. jzoj3188-找数【质数筛,数论】

    正题 题目大意 求第nnn大的最小质因数时ppp的数. 解题思路 首先对于p=2p=2p=2和p=3p=3p=3时可以直接通过计算得出. 然后不难发现当p=5p=5p=5时我们可以每次增加101010 ...

  4. 【数学】Baby Step,Giant Step

    给定整数 a,b,pa,b,pa,b,p 且 a,pa,pa,p 互质,请求出高次同余方程 ax≡b(modp)a^x\equiv b\pmod pax≡b(modp) 的非负整数解. 首先, a0≡ ...

  5. BSGSexBSGS(让你轻松理解和掌握)

    BSGS&exBSGS BSGS(Baby step Giant step) EXBSGS(Extend Baby step Giant step) BSGS(Baby step Giant ...

  6. 浅谈BSGS和EXBSGS

    我的 BSGS 和各位犇犇的差不多,但是不需要求逆元 Luogu [ TJOI2007 ] 可爱的质数 原题展现 题目描述 给定一个质数 \(p\),以及一个整数 \(b\),一个整数 \(n\),现 ...

  7. BSGS(基础篇,题目+详解)

    基础篇 问题: 思路: 模板: 题目: 基础篇 问题: 给出 a , b , p a,b,p a,b,p,其中 g c d ( a , p ) = 1 gcd(a,p)=1 gcd(a,p)=1,求 ...

  8. 2019纪中暑假游记+总结

    Travels总篇\texttt{Travels总篇}Travels总篇 7/4\texttt{7/4}7/4 下午才去纪中,早上就一大早和同学出去玩,看了蜘蛛侠然后到3点多才出发. 因为走南沙大桥所 ...

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

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

最新文章

  1. 编程之美2.7 最大公约数,最小公倍数
  2. 为什么 Redis 单线程能支撑高并发?
  3. xampp默认配置拿shell
  4. python 中的序列
  5. Android之Android studio基本调试和快捷键
  6. CS224n-week1-课程导学
  7. Python工程师必看的面试问题与解答(中)
  8. layUI table 内容超出宽度怎么换行显示,而不是显示省略号
  9. Oracle ora-15070,查询字段过多触发了Oracle的BUG?【ORA-01465: 无效的十六进制数字】...
  10. Maven的安装与配置
  11. 贵就好?中消协买20款扫地机器人,艾罗伯特这款噪音大!
  12. $ is not defined
  13. Unity问题(1)——mesh法线反转
  14. hive修改分区信息
  15. 微信小程序 本地存储
  16. [java] 设计模式
  17. 拓嘉辰丰:拼多多直播推广的付费模式有哪些?
  18. FZU2109 数位dp 含前导零
  19. 腾讯云 mysql 远程连接
  20. 数字逻辑综合工具-DC-11——一些其它命令和综合之后的文件

热门文章

  1. 跨部门不配合工作_跨部门协作,队友总是“甩锅”,这三个方法教你快速避坑!...
  2. 反锐化掩膜_光电图像处理 | 空域锐化滤波
  3. 广西高考成绩查询2021,2021年广西高考个人排名怎么查询,广西高考成绩排名查询方法...
  4. macbook oracle 工具,Navicat for Oracle Mac 四种实用工具
  5. [设计模式]开闭原则
  6. [Java基础]字节缓冲流
  7. [蓝桥杯2019初赛]年号字串-数论+模拟
  8. C++set容器-构造和赋值
  9. Invitation Cards POJ - 1511 SPFA(dijkstra+反向建图+邻接表(下标过大)+输入输出用stdio(iostream超时))
  10. mpu 配置内存空间_mpu内存保护单元功能及工作原理