如何求解对于高倍的组合数 模板

const LL mod = 1e9 + 7;
LL fac[maxn];

LL mypow(LL val, LL n){
    LL ans = 1;
    while (n){
        if (n & 1) ans = ans * val % mod;
        n >>= 1;
        val = val * val % mod;
    }
    return ans;
}

LL C(LL n, LL m){
    if (m > n || m < 0 || n < 0) return 0;
    LL p = fac[n], q = fac[n - m] * fac[m] % mod;
    return p * mypow(q, mod - 2) % mod;
}

int main(){
    fac[0] = 1;
    for (int i = 1; i <= n; i++){
        fac[i] = fac[i - 1] * i % mod;
    }      
}
原文地址:https://www.cnblogs.com/heimao5027/p/6164353.html