LUOGU P4195 Spoj3105 Mod
题面
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相关推荐
- 浅谈BSGS和EXBSGS
我的 BSGS 和各位犇犇的差不多,但是不需要求逆元 Luogu [ TJOI2007 ] 可爱的质数 原题展现 题目描述 给定一个质数 \(p\),以及一个整数 \(b\),一个整数 \(n\),现 ...
- 数论知识总结——史诗大作(这是一个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> ...
- MOD - Power Modulo Inverted(SPOJ3105) + Clever Y(POJ3243) + Hard Equation (Gym 101853G ) + EXBSGS
思路: 前两题题面相同,代码也相同,就只贴一题的题面了.这三题的意思都是求A^X==B(mod P),P可以不是素数,EXBSGS板子题. SPOJ3105题目链接:https://www.spoj. ...
- Luogu P6055 [RC-02] GCD(莫比乌斯反演,杜教筛)(这题乐死我了,真就图一乐呗)
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 Weblink https://www.luogu.com.cn/problem/P6055 Prob ...
- Luogu P4336 [SHOI2016]黑暗前的幻想乡(容斥,矩阵树定理,子集反演)
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 Luogu P4336 [SHOI2016]黑暗前的幻想乡(容斥,矩阵树定理) Problem n≤1 ...
- BZOJ 2154 [国家集训队]Crash的数字表格 / JZPTAB(莫比乌斯反演,经典好题)(Luogu P1829)
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 P1829 [国家集训队]Crash的数字表格 / JZPTAB(反演,经典好题) Problem S ...
- luogu P3306 [SDOI2013] 随机数生成器(BSGS,数列求通项,毒瘤特判)
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 发个水题的 题解证明我还在() luogu P3306 [SDOI2013] 随机数生成器 Webli ...
- luogu P5142 区间方差(线段树、乘法逆元)
luogu P5142 区间方差 本题要求维护模区间方差,很明显是一道数据结构题. 我们化简方差公式: 而平均数等于 可以发现,我们只需要维护序列的区间和和区间平方和,就可以维护平均数和方差. 区间和 ...
- Luogu P4916 魔力环
题目链接 https://www.luogu.org/problemnew/show/P4916 题解 将项链用序列表示,111代表黑色,000代表白色,对于一个合法序列,它必定能表示成ddd个循环节 ...
最新文章
- ubuntu16.04 英文环境安装中文输入法
- 阿姆斯特朗数 matlab,数学实验报告
- 深度学习之神经网络的结构
- 转载: CentOS下配置Apache
- SQL Server Reporting Services最佳做法
- 单向链表反转-JS实现
- 阿里巴巴《rocketmq开发指南》_主流消息中间件优劣:ActiveMQ,RabbitMQ,Kafka,RocketMQ...
- opencv打开Lena图像,并且将Lena改成单通道的图片
- ARM体系结构与编程-3
- linux修改目录的owner及group权限
- 【数学之美】豆瓣9.1 颠覆世界的混沌理论
- 企业微信机器人脚本python_Python实现企业微信机器人每天定时发消息实例
- 苹果手机计算机无法横屏,苹果手机怎么设置屏幕旋转失灵了怎么办
- 前端 下载文件简易方法(兼容IE)
- ESP32编译运行ADF音频库
- redis做浏览历史数据
- 三星mzvlb1t0hblr是什么固态_固态硬盘跑分速度天梯图/天梯表,最全搜集。
- sqlplus常用命令
- 卫健委:2020年基本建立较完善的三级公立医院绩效考核体系
- 发图之梅梅的设计图——继续纠结飞机稿