题面

bsgs问题。因为p可能不为质数,所以我们将原先解题的式子变形
每次除以p与a的最大公约数,直到最大公约数为1或b不能整除为止

代码


#include<iostream>
#include<algorithm>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<map>
#define LL long longusing namespace std;LL a,b,m,p,now,ans;
bool flag;
map<LL,int> mp;inline LL fast_pow(LL a,LL b){LL ret=1;LL aa=a;for(;b;b>>=1){if(b&1) ret=ret*aa%p;aa=aa*aa%p;}return ret;
}int main(){while(~scanf("%lld%lld%lld",&a,&p,&b)){if(a==0 && b==0 && p==0) break;if(a%p==0){puts("No Solution");continue;}if(b==1) {puts("0");continue;}flag=false;a%=p;b%=p;LL t=1,cnt=0;for(register int i=__gcd(a,p);i!=1;i=__gcd(a,p)){if(b%i){puts("No Solution");flag=1;break;}p/=i;t=t*a/i%p;b/=i;cnt++;if(b==t) {printf("%lld\n",cnt);flag=1;break;}}if(flag) continue;mp.clear();now=b;mp[now]=0;m=ceil(sqrt(p));for(register int i=1;i<=m;i++){now=now*a%p;mp[now]=i;}now=t;LL k=fast_pow(a,m);for(register int i=1;i<=m;i++){now=now*k%p;if(mp[now]){flag=true;ans=i*m-mp[now]+cnt;printf("%lld\n",ans);break;}}           if(!flag) puts("No Solution");              }return 0;
}

转载于:https://www.cnblogs.com/sdfzsyq/p/9677003.html

LUOGU P4195 Spoj3105 Mod相关推荐

  1. 浅谈BSGS和EXBSGS

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

  2. 数论知识总结——史诗大作(这是一个flag)

    1.快速幂 计算a^b的快速算法,例如,3^5,我们把5写成二进制101,3^5=3^1*1+3^2*2+3^4*1 1 ll fast(ll a,ll b){ll ans=1;for(;b;b> ...

  3. MOD - Power Modulo Inverted(SPOJ3105) + Clever Y(POJ3243) + Hard Equation (Gym 101853G ) + EXBSGS

    思路: 前两题题面相同,代码也相同,就只贴一题的题面了.这三题的意思都是求A^X==B(mod P),P可以不是素数,EXBSGS板子题. SPOJ3105题目链接:https://www.spoj. ...

  4. Luogu P6055 [RC-02] GCD(莫比乌斯反演,杜教筛)(这题乐死我了,真就图一乐呗)

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 Weblink https://www.luogu.com.cn/problem/P6055 Prob ...

  5. Luogu P4336 [SHOI2016]黑暗前的幻想乡(容斥,矩阵树定理,子集反演)

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 Luogu P4336 [SHOI2016]黑暗前的幻想乡(容斥,矩阵树定理) Problem n≤1 ...

  6. BZOJ 2154 [国家集训队]Crash的数字表格 / JZPTAB(莫比乌斯反演,经典好题)(Luogu P1829)

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 P1829 [国家集训队]Crash的数字表格 / JZPTAB(反演,经典好题) Problem S ...

  7. luogu P3306 [SDOI2013] 随机数生成器(BSGS,数列求通项,毒瘤特判)

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 发个水题的 题解证明我还在() luogu P3306 [SDOI2013] 随机数生成器 Webli ...

  8. luogu P5142 区间方差(线段树、乘法逆元)

    luogu P5142 区间方差 本题要求维护模区间方差,很明显是一道数据结构题. 我们化简方差公式: 而平均数等于 可以发现,我们只需要维护序列的区间和和区间平方和,就可以维护平均数和方差. 区间和 ...

  9. Luogu P4916 魔力环

    题目链接 https://www.luogu.org/problemnew/show/P4916 题解 将项链用序列表示,111代表黑色,000代表白色,对于一个合法序列,它必定能表示成ddd个循环节 ...

最新文章

  1. ubuntu16.04 英文环境安装中文输入法
  2. 阿姆斯特朗数 matlab,数学实验报告
  3. 深度学习之神经网络的结构
  4. 转载: CentOS下配置Apache
  5. SQL Server Reporting Services最佳做法
  6. 单向链表反转-JS实现
  7. 阿里巴巴《rocketmq开发指南》_主流消息中间件优劣:ActiveMQ,RabbitMQ,Kafka,RocketMQ...
  8. opencv打开Lena图像,并且将Lena改成单通道的图片
  9. ARM体系结构与编程-3
  10. linux修改目录的owner及group权限
  11. 【数学之美】豆瓣9.1 颠覆世界的混沌理论
  12. 企业微信机器人脚本python_Python实现企业微信机器人每天定时发消息实例
  13. 苹果手机计算机无法横屏,苹果手机怎么设置屏幕旋转失灵了怎么办
  14. 前端 下载文件简易方法(兼容IE)
  15. ESP32编译运行ADF音频库
  16. redis做浏览历史数据
  17. 三星mzvlb1t0hblr是什么固态_固态硬盘跑分速度天梯图/天梯表,最全搜集。
  18. sqlplus常用命令
  19. 卫健委:2020年基本建立较完善的三级公立医院绩效考核体系
  20. 发图之梅梅的设计图——继续纠结飞机稿

热门文章

  1. C#的修饰符作用的范围
  2. DotNet 开发团队图
  3. 恢复win8桌面上计算机图标,win8系统桌面我的电脑图标不见了如何找回
  4. js获取和设置属性的方法
  5. linux进程同步/通信,线程同步/通信的区别
  6. linux shell中21的含义
  7. spring29: JdbcTemplate详解
  8. inode占满前因后果
  9. AngularJS的稍复杂form验证
  10. Gradle 配置spring boot启动