欧拉定理
基本欧拉定理
若 \(\gcd(a,p)=1\),则:
\[a^c\equiv a^{c\bmod \varphi(p)}\pmod p
\]
注:费马小定理即欧拉定理在 \(p\) 为质数时的特殊情况。
扩展欧拉定理
\[a^c\equiv\begin{cases}a^{c\bmod \varphi(p)}&\gcd(a,m)=1\\a^c&\gcd(a,m)\ne1\land c<\varphi(p)\\a^{c\bmod\varphi(p)+\varphi(p)}&\gcd(a,m)\ne1\land c\geqslant\varphi(p)\end{cases}\pmod p
\]
例题
- LOJ525
给定 \(k\),求出一个次数不超过 \(2k\),最高次项非 \(0\) 的多项式 \(f(x)\),使得 \(\forall i\in[0,k−1],f(i)\bmod k=0\)。
sol:
根据扩展欧拉定理,\(x^{\varphi(p)}\equiv x^{2\varphi(p)}\pmod p\)。
构造多项式 \(x^{2\varphi(p)}-x^{\varphi(p)}\) 即可。
- 相逢是问候
给定长为 \(n\) 的初始序列 \(a\),以及常数 \(c,p\)。\(m\) 次操作:
-
将一个区间内的所有数 \(a_i\) 替换为 \(c^{a_i}\)。
-
区间求和 \(\bmod\ p\)。
sol:
记 \(f(a,k,p)\) 表示 \(a\) 经过 \(k\) 次 \(a=c^a\) 后 \(\bmod\ p\) 的值,可以递归处理。
因为 \(\varphi(\varphi(\cdots\varphi(p)))\) 至多经过 \(O(\log p)\) 层就会变成 \(1\),所以这个值在 \(k>2\log p\) 时是不变的。
所以对于没有操作 \(2\log p\) 次的位置暴力修改,线段树维护:区间和,这个区间是否所有位置都修改过超过 \(2\log p\) 次询问。
复杂度 \(O(n\log^2 p)\)。

浙公网安备 33010602011771号