【科技】 扩展中国剩余定理(exCRT)
尽管这玩意叫扩展中国剩余定理,但它跟CRT一点关系没有,你只需要会exgcd即可。
考虑这样的一组模线性同余方程组:
\[
\begin{cases}
x\equiv b_1 \pmod {a_1}\\
x\equiv b_2 \pmod{a_2}\\
\ \ \ \ \ \vdots\\
x \equiv b_n \pmod{a_n}
\end{cases}
\]
注意与前面不同的是 \(a_i\) 不一定满足两两互质。
这时候再套CRT肯定是不行了(因为 \(M_i\) 与 \(a_i\) 不一定互质,导致逆元可能不存在),这时就要考虑exCRT。
CRT的基本思想是吧若干个同余方程合并为一个等价的同余方程,不难想到其实只需要考虑怎么把两个方程合并为一个即可。
假设现在有这样两个方程:
\[
\begin{cases}
x\equiv b_1 \pmod {a_1}\\
x\equiv b_2 \pmod{a_2}\\
\end{cases}
\]
不难发现这个方程组可以改写成这样:
\[
\begin{cases}
x= b_1+k_1 a_1\\
x=b_2+k_2 a_2\\
\end{cases}
\]
于是有 \(k_1a_1-k_2a_2=b_2-b_1\),此时只有 \(k_1\),\(k_2\) 是未知量,很容易判断是否有解(裴蜀定理),如果有解那么先exgcd求出 \(k_1a_1-k_2a_2=d\) 的一组特解 \(K_1\),\(K_2\),那么整个解集就可以得到了,这里只取其中的一组:
\[
\begin{cases}
k_1=K_1\frac{b_2-b_1}{d}\\
k_2=K_2\frac{b_2-b_1}{d}\\
\end{cases}
\]
那么 \(x=b_1+K_1a_1\frac{b_2-b_1}{d}\)(当然也满足\(x=b_2+K_2a_2\frac{b_2-b_1}{d}\)),而后面的模数显然应该取一个完全剩余系的大小 \(\rm {lcm}(a_1,a_2)\),于是我们成功的把两个方程合并成了一个:
\[x\equiv b_1+K_1a_1\frac{b_2-b_1}{d}\pmod {\rm{lcm}(a_1,a_2)}
\]
那么这样逐个合并下去,直到只剩一个方程即为答案(或中途不满足 \(\gcd(a_i,a_{i+1})|(b_{i+1}-b_i)\) 报告无解)。