【NOIP训练】【数论】超级计算机

2018-06-17 23:51:02来源:未知 阅读 ()

新老客户大回馈,云服务器低至5折

题目描述
有以下几个问题:
1 给定正整数 a,b,c 求方程  ax\,$\equiv$\,b\,(mod$\quad$c) 的最小非负整数解。
2 给定正整数 f,g,h求方程 g^x\,$\equiv$\,f\,(mod$\quad$h)的最小非负整数解。
3 给定正整数 u,v,w求方程 x^u$\equiv$v(mod$\quad$w) 在模 w
 意义下解的数量。
4 给定正整数 x,y,z
求  (\phi(x)+\mu(y))$\quad$mod$\quad$z 的值。其中 \phi(x) 是欧拉函数, \mu(y)是莫比乌斯函数。
输入格式
输入文件共四行,按上述描述中四个问题的顺序,给出每个问题。
第一行三个正整数 a,b,c  表示第一个问题,保证 a,b<c
第二行三个正整数 f,g,h 表示第二个问题,保证 f,g<h 
第三行三个正整数 u,v,w 表示第三个问题,保证 w 为质数且 u,v<w 
第四行三个正整数 x,y,z
表示第四个问题。
输出格式
共四行每行一个整数,分别表示四个问题的答案。对于前两个问题,若问题无解则输出-1。对于第三个问题你只需输出解的数量。
样例数据
super.in
3 6 8
9 10 12
4 4 7
5 4 20

super.out
2
-1
2
4
数据范围
20% 的数据: a,b,c,f,g,h,u,v,w$\leq$20
60% 的数据: x,y,z$\leq$230
100% 的数据: a,b,c,f,g,h,u,v,w$\leq$230;x,y,z$\leq$260
评分方式
对于每个测试点:
? 第一个问题正确得 2 分。
? 第二个问题正确得 3 分。
? 第三个问题正确得 3 分。

 

题解

第一问:将式子化成  ax+cy=b , 拓展欧几里得即可。

第二问: BSGS大步小步算法解高次同余方程。

详情请见TonyFang博客:http://tonyfang.is-programmer.com/posts/178997.html

1

QQ截图20160829192019

第三问:求出 w 的一个原根 p,可以求出 p^b\,$\equiv$\,v(mod$\quad$w),并设 p^a\,$\equiv$\,x(mod$\quad$w), 则由费马小定理可知,解该方程等价于解 au$\equiv$b(mod$\quad$w-1) 所以实际上它是前两个问题的组合应用。

第四问:Pollard Rho算法和Millar Rabin算法的应用。

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:观光浏览

下一篇:Qt在控件未显示时如何获取正确的控件尺寸