解线性同余方程组
解线性同余方程组
CRT
不说了.
struct CRT{
ll de[crtn],nn[crtn];//product of de should be within range<long long>()
inline ll operator()(int n){
ll M=1,ans=0;
fon(i,n) M*=de[n];
fon(i,n){
ll t=M/de[n],inv=inv_fast(t,de[n]);
ans=(ans+t*inv*nn[n])%M;
}
return (ans+M)%M;
}
};
CRT只能处理模数互素的情况.
增量法
每次将两个同余方程合并成一个.
设这两个方程:
\[x\equiv a\pmod{b}
\]
与
\[x\equiv c\pmod{d}
\]
显然
\[x\equiv c\pmod{\frac{d}{(b,d)}}
\]
就可以CRT一下...就没了?