博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
spoj3105 MOD - Power Modulo Inverted(exbsgs)
阅读量:7226 次
发布时间:2019-06-29

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

 

关于exbsgs是个什么东东可以去看看yyb大佬的博客->

1 //minamoto 2 #include
3 #include
4 #include
5 #include
6 #define ll long long 7 #define GG {puts("No Solution");} 8 using namespace std; 9 #define getc() (p1==p2&&(p2=(p1=buf)+fread(buf,1,1<<21,stdin),p1==p2)?EOF:*p1++)10 char buf[1<<21],*p1=buf,*p2=buf;11 inline ll read(){12 #define num ch-'0'13 char ch;bool flag=0;ll res;14 while(!isdigit(ch=getc()))15 (ch=='-')&&(flag=true);16 for(res=num;isdigit(ch=getc());res=res*10+num);17 (flag)&&(res=-res);18 #undef num19 return res;20 }21 map
mp;22 inline ll gcd(ll a,ll b){23 if(!b) return a;24 while(b^=a^=b^=a%=b);25 return a;26 }27 inline ll ksm(ll a,ll b,ll p){28 ll res=1;29 while(b){30 if(b&1) (res*=a)%=p;31 (a*=a)%=p,b>>=1;32 }33 return res;34 }35 inline void ex_BSGS(ll y,ll z,ll p){36 if(z==1) return (void)(puts("0"));37 int k=0,a=1;38 while(true){39 int d=gcd(y,p);if(d==1) break;40 if(z%d) return (void)(GG);41 z/=d,p/=d,++k,a=1ll*a*y/d%p;42 if(z==a) return (void)(printf("%d\n",k));43 }44 mp.clear();45 int m=sqrt(p)+1;46 for(int i=0,t=z;i
=0&&i*m-j+k>=0) return (void)(printf("%d\n",i*m-j+k));50 }51 GG;52 }53 int main(){54 // freopen("testdata.in","r",stdin);55 while(true){56 int x=read(),z=read(),k=read();57 if(x==0&&z==0&&k==0) break;58 ex_BSGS(x,k,z);59 }60 return 0;61 }

 

转载于:https://www.cnblogs.com/bztMinamoto/p/9740806.html

你可能感兴趣的文章
C语言冒泡排序法
查看>>
B2B行业门户网站群发邮件时间及发送频率
查看>>
关于虚拟机能ping通物理机,而物理机ping不通虚拟机问题解决。
查看>>
同台机器启动多个mysql
查看>>
iframe 跨域高度自适应
查看>>
struts2+hibernate3+spring3(ssh2)框架下的web应用
查看>>
Linux下的三个时间属性
查看>>
semanage
查看>>
[case分享]Exchange 2010 登陆OWA查看邮件出现Rights managem operation failed
查看>>
linux dd 读取 写入磁盘速度
查看>>
dmidecode查看linux硬件信息
查看>>
linux监控对象及重要性
查看>>
walle-web自动化部署配置
查看>>
opencv轮廓提取、轮廓识别相关要点
查看>>
BOOST.ASIO源码剖析(一)
查看>>
过滤squidlog中各个链接的大小
查看>>
我的友情链接
查看>>
使用AnyChat如何实现任意两用户之间的音视频交互
查看>>
【个人小结】项目公共js的配置,解决不同页面多个配置修改的问题
查看>>
XAMP安装Apacher无法启动
查看>>