http://www.lydsy.com/JudgeOnline/problem.php?id=2242

  1. #include<map>
  2. #include<cmath>
  3. #include<cstdio>
  4.  
  5. using namespace std;
  6.  
  7. int y,z,p;
  8.  
  9. map<int,int>mp;
  10.  
  11. int Pow(int a,int b,int m)
  12. {
  13. int ans=;
  14. for(;b;a=1LL*a*a%m,b>>=)
  15. if(b&) ans=1LL*ans*a%m;
  16. return ans;
  17. }
  18.  
  19. int gcd(int a,int b) { return !b ? a : gcd(b,a%b); }
  20.  
  21. void exgcd(int a,int b,long long &x,long long &y)
  22. {
  23. if(!b) { x=; y=; return; }
  24. exgcd(b,a%b,y,x); y-=a/b*x;
  25. }
  26.  
  27. void bsgs()
  28. {
  29. mp.clear();
  30. int m=ceil(sqrt(p));
  31. int mul=z;
  32. //mp[z]=0;
  33. for(int j=;j<=m;++j)
  34. {
  35. mul=1LL*y*mul%p;
  36. mp[mul]=j;
  37. }
  38. int am=Pow(y,m,p);
  39. mul=;
  40. for(int j=;j<=m;++j)
  41. {
  42. mul=1LL*mul*am%p;
  43. if(mp.find(mul)!=mp.end())
  44. {
  45. printf("%d\n",j*m-mp[mul]);
  46. return;
  47. }
  48. }
  49. puts("Orz, I cannot find x!");
  50. }
  51.  
  52. int main()
  53. {
  54. int T,k;
  55. scanf("%d%d",&T,&k);
  56. if(k==)
  57. while(T--)
  58. {
  59. scanf("%d%d%d",&y,&z,&p);
  60. printf("%d\n",Pow(y,z,p));
  61. }
  62. else if(k==)
  63. {
  64. long long x0,y0;
  65. int g;
  66. while(T--)
  67. {
  68. scanf("%d%d%d",&y,&z,&p);
  69. g=gcd(y,p);
  70. if(z%g) puts("Orz, I cannot find x!");
  71. else
  72. {
  73. y/=g; p/=g;
  74. exgcd(y,p,x0,y0);
  75. x0=(x0%p+p)%p;
  76. x0=x0*z/g%p;
  77. printf("%lld\n",x0);
  78. }
  79. }
  80. }
  81. else
  82. while(T--)
  83. {
  84. scanf("%d%d%d",&y,&z,&p);
  85. if(!(y%p)) puts("Orz, I cannot find x!");
  86. else bsgs();
  87. }
  88. return ;
  89. }

bzoj千题计划246:bzoj2242: [SDOI2011]计算器的更多相关文章

  1. bzoj千题计划300:bzoj4823: [Cqoi2017]老C的方块

    http://www.lydsy.com/JudgeOnline/problem.php?id=4823 讨厌的形状就是四联通图 且左右各连一个方块 那么破坏所有满足条件的四联通就好了 按上图方式染色 ...

  2. bzoj千题计划292:bzoj2244: [SDOI2011]拦截导弹

    http://www.lydsy.com/JudgeOnline/problem.php?id=2244 每枚导弹成功拦截的概率 = 包含它的最长上升子序列个数/最长上升子序列总个数 pre_len ...

  3. bzoj千题计划254:bzoj2286: [Sdoi2011]消耗战

    http://www.lydsy.com/JudgeOnline/problem.php?id=2286 虚树上树形DP #include<cmath> #include<cstdi ...

  4. bzoj千题计划196:bzoj4826: [Hnoi2017]影魔

    http://www.lydsy.com/JudgeOnline/problem.php?id=4826 吐槽一下bzoj这道题的排版是真丑... 我还是粘洛谷的题面吧... 提供p1的攻击力:i,j ...

  5. bzoj千题计划280:bzoj4592: [Shoi2015]脑洞治疗仪

    http://www.lydsy.com/JudgeOnline/problem.php?id=4592 注意操作1 先挖再补,就是补的范围可以包含挖的范围 SHOI2015 的题 略水啊(逃) #i ...

  6. bzoj千题计划177:bzoj1858: [Scoi2010]序列操作

    http://www.lydsy.com/JudgeOnline/problem.php?id=1858 2018 自己写的第1题,一遍过 ^_^ 元旦快乐 #include<cstdio> ...

  7. bzoj千题计划317:bzoj4650: [Noi2016]优秀的拆分(后缀数组+差分)

    https://www.lydsy.com/JudgeOnline/problem.php?id=4650 如果能够预处理出 suf[i] 以i结尾的形式为AA的子串个数 pre[i] 以i开头的形式 ...

  8. bzoj千题计划304:bzoj3676: [Apio2014]回文串(回文自动机)

    https://www.lydsy.com/JudgeOnline/problem.php?id=3676 回文自动机模板题 4年前的APIO如今竟沦为模板,,,╮(╯▽╰)╭,唉 #include& ...

  9. bzoj千题计划278:bzoj4590: [Shoi2015]自动刷题机

    http://www.lydsy.com/JudgeOnline/problem.php?id=4590 二分 这么道水题 没long long WA了两发,没判-1WA了一发,二分写错WA了一发 最 ...

随机推荐

  1. 蓝牙学习笔记二(Android连接问题)

    可以通过以下两点加速蓝牙连接: 1.更新连接参数 interval:连接间隔(connection intervals ),范围在 7.5 毫秒 到 4 秒. latency:连接延迟 ... 还有一 ...

  2. C#字符串截取、获取当前电脑时间、判断输入日期对错 随手记

    字符串截取:这个就当复习了,看意见就可以 //身份证生日截取 //Console.WriteLine("请输入18位身份证号:"); //string x = Console.Re ...

  3. 基于AngularJs的单页面程序

    基于AngularJs的单页面程序 在Abpzero的后台管理系统是一个AngularJs的单页面程序.当你登陆后,系统会跳转到"ApplicationController",然后 ...

  4. Jmeter+ant+Jenkins构建接口自动化测试

    1.已写好jmeter脚本 2.安装ant并将ant-jmeter-1.1.1.jar文件放入ant/lib目录,用于调用jmeter 3.修改jmeter的jmeter.properties文件(将 ...

  5. 【MAVEN】Missing artifact jdk.tools:jdk.tools:jar:1.6 eclipse

    搭建开发环境,遇到问题 : IDE 使用 eclipse 公司的项目用Maven管理,从git上拿下来代码后开始build后:    提示    [missing artifact jdk.tools ...

  6. CentOS-7.x Yum Repo Mirror

    一. 环境 1.1 主机信息 主机 OS Storage 备注 100.64.140.101 centos 7.6 /dev/sdb > 100GB 1.selinux disable; 2.放 ...

  7. UI Recorder 安装教程(二)

    前言: UI Recorder支持无线native app(Android, iOS)录制, 基于macaca实现:https://macacajs.com/ 本次教程只针对无线native app( ...

  8. Matlab批量处理指定文件夹下的所有音频文件

    filedir='E:/source/Wavfile/*.wav'; % 设置路径 outfiledir='E:/output/Wavfile/'; infiledir='E:/source/Wavf ...

  9. HTML5之HTTP协议

    ---恢复内容开始--- 99%的人都理解错了HTTP中GET与POST的区别 2016.10.11 13:23:22来源: 51cto作者:51cto   (转)   GET和POST是HTTP请求 ...

  10. 功能WBS分解

    小组名称:飞天小女警 项目名称:礼物挑选小工具 小组成员:沈柏杉(组长).程媛媛.杨钰宁.谭力铭 代码地址:HTTPS: https://git.coding.net/shenbaishan/GIFT ...