「考试」天空碎片
我们发现在\(p(p-1)\)范围内,每个数关于\(p\)和\(\varphi(p)\)的余数对\((a,b)\)各不相同。
设原根为\(g\)。
那么也就是说,在\(n,m\)不等于0的情况下:
由于余数对各不相同。
那么其实是在求:
的解的个数。
如果\(n,m\)等于0,等于0的部分的解就是\((p-1)^2\)
现在设:
\(N(m)\)为\(m\)中满足条件的四个数组的个数。
那么设:
由于:
设\(p_i^{e_i}\)中某一个解和\(p_j^{e_j}\)中的某一个解分别为:
所以得到:
这样子我们通过两个互质的数得到:
所以说:
我们现在要求:\(N(p^e)\)
我们设:
满足的数对\((a,b)\)个数为:\(C(t)\)
那么:
现在考虑如何求\(C(t)\)
假设我们现在已经确定了\(a\),要求满足条件的\(b\)的个数。
但是这样我们发现\(gcd(a,p^e)|t\)这个条件不一定成立,也就是说满足条件的个数可能为\(0\),这样不方便我们批量计算,仍然首先假设\(ab!=0\),0的情况之后特判掉。
所以这里提出\(a\)中含有的\(p\)的因子。
条件被转化为:
这样我们需要解的就是在满足一定的\(\alpha,\beta\)的情况下的\((a',b')\)数量。
先假设\(a'\)已经确定了。
那么:
转化为线性方程:
首先引理:
设a'b'的到的一组特解为:$$\begin{cases}b_0\k_0\end{cases}$$
设\(d=gcd(a',e^{e-j})\)
那么通解可以表示为:
其中\(r\)取遍整数集合。
证明一下:
我们设方程\(a'(b'+g_b)+p^{e-j}(k-g_k)=s\)成立。
那么:
从而可以完整的验证上述引理。
有了这个就好说了。
这个方程中:
那么\(b'=b_0+rp^{e-j}\)
也就是说,每\(p^{e-j}\)出现一个解。
而取值区间为:
那么对于同一个\(a'\),\(b'\)的数量为:\(\frac{p^{\beta}}{p^{e-\beta-\alpha}}=p^{\alpha}\)。
而我们的\(a'\)没有\(p\)的因子,那么他的数目为:\(\frac{p^{e-\alpha}(p-1)}{p}=p^{e-\alpha-1}(p-1)\)
所以对于某一组\((\alpha,\beta)\),\(a‘,b’\)的数目为:
而有\(j+1\)组\((\alpha,\beta)\)
所以:对于某一个\(t=p^js\):
现在特判0:
\(1.a!=0\)
那么:\(ab+kp^e=0\)
设\(a=p^{\alpha}g\)
那么\(d=gcd(a,p^e)=p^{\alpha}\)
\(b=b_0\frac{0}{d}+r\frac{p^{e}}{d}=r\frac{p^e}{d}\)
而:\(b\in[0,p^e)\)
所以说解的个数为:\(\frac{p^e}{\frac{p^e}{d}}=d=p^{\alpha}\)
而满足\(gcd(a,p^e)=p^{\alpha}\)的\(a\)的个数为:\(\frac{p^e}{p^{\alpha}}\frac{p-1}{p}\)
对于\(C(0)\)的贡献就是:$$p{\alpha}\frac{pe}{p{\alpha}}\frac{p-1}{p}=p(p-1)$$
而\(\alpha\in[0,e-1]\)
那么这部分的贡献就是:\(ep^{e-1}(p-1)\)
\(2.a==0\)
这部分的贡献就是\(b\)的个数,为\(p^e\)
那么:
\(C(0)=ep^{e-1}(p-1)+p^e=ep^{e-1}(p-1)+p^{e-1}((p-1)+1)=ep^{e-1}(p-1)+p^{e-1}(p-1)+p^{e-1}=(e+1)p^{e-1}(p-1)+p^{e-1}\)
所以,考虑到\(j\)相同的贡献都相同:
这个式子直接迭代可以在\(log\)复杂度内解决。
那么可以求出\(N(m)\)
\(ans=(p-1)^2+N(\varphi(p))\)
而对于\(\varphi(p)\)的分解可以先筛出\(\sqrt{p}\)以内的质数。
设\(p\)内的质数个数为\(\pi(p)\)
那么复杂度为:
问题得到解决。