@yang12138
2018-08-30T21:04:55.000000Z
字数 739
阅读 971
未分类
题意:
给定,且是质数,求所有满足的.
1、原根
对一个质数来说,如果正整数满足两两不同,那么称是模的一个原根。
质数的最小原根通常都比较小,所以可以通过枚举来计算。
详细的说,枚举一个数,然后枚举的所有质因子,如果均不为,那么就是模的一个原根。
2、离散对数
已知,且是质数,求解满足的,这种问题被称为离散对数问题。
设,那么可以被表示成,其中,也就是,等价于。那么可以将全部的放入哈希表,然后枚举来求解。
在此题,可以先求出的最小原根,根据原根的定义可知互不相同,也就是和一一对应,设原题的(这里求解需要用上面介绍的离散对数),那么要求的是,等价于,用扩展欧几里得算法求出其中一个解(或者判断无解),然后再拓展出其他解即可。
原题链接:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1038