逆元求组合数

  • (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);
}

 

posted @ 2018-08-23 15:14  hopelee  阅读(1067)  评论(0编辑  收藏  举报