摘要:
逆元的主要用处,当求a/b模p时,a与b过大,就可以用逆元,求出b的逆元,一般是pow(b,p-2),a/b及等于a*b逆。 组合数使用了这一个特性,求出阶乘的逆 1 int fac[N]//表示阶乘; 2 int infac[N]//表示阶乘的逆; 3 int main(){ 4 int a,b; 阅读全文
摘要:
求a/b的mod 等价于a*b逆的mod 求1到n的逆元可以用线性法 1 int ins[N]; 2 int main() { 3 int n, p; 4 cin >> n >> p; 5 for (int i = 2; i <= n; ++i) { 6 ins[i] = (p - p / i) * 阅读全文
摘要:
扩展欧拉定理,用来求幂 1 int pow(int x, int y, int mod) { 2 if (y >= p[mod]){ 3 return pow(x, y%p[mod] + p[mod], mod);//扩欧拉,p表示欧拉函数 4 } 5 int ret = 1; 6 while (y 阅读全文