逆元求组合数

  • (a + b) % p = (a % p + b % p) % p
  • (a - b) % p = (a % p - b % p) % p
  • (a * b) % p = (a % p * b % p) % p
  • (a / b) % p  (a % p / b % p) % p

除法取模转换为求(a(b)%p)。那么就可以转换为求一个数的逆元的问题,利用费马小定理,b的逆元是b^(p-2),那么利用快速幂定理就可以求解。

LL pow(LL a, LL n, LL p)    //快速幂 a^n % p
{
    LL ans = 1;
    while(n)
    {
        if(n & 1) ans = ans * a % p;
        a = a * a % p;
        n >>= 1;
    }
    return ans;
}

LL niYuan(LL a, LL b)   //费马小定理求逆元
{
    return pow(a, b - 2, b);
}
原文地址:https://www.cnblogs.com/hopelee/p/9523910.html