zoukankan      html  css  js  c++  java
  • 组合数的求法 (n<=1e8 可以过来看)

    C(n,m) =n!/(m!* (n-m)!  );

    o(n) 求 1-m的逆元 

    o(n) 求 n的阶乘

    代码实现  

    https://www.cnblogs.com/linyujun/p/5194189.html

    #include<cstdio>
    const int N = 200000 + 5;
    const int MOD = (int)1e9 + 7;
    int F[N], Finv[N], inv[N];//F是阶乘,Finv是逆元的阶乘 
    void init(){
        inv[1] = 1;
        for(int i = 2; i < N; i ++){
            inv[i] = (MOD - MOD / i) * 1ll * inv[MOD % i] % MOD;
        }
        F[0] = Finv[0] = 1;
        for(int i = 1; i < N; i ++){
            F[i] = F[i-1] * 1ll * i % MOD;
            Finv[i] = Finv[i-1] * 1ll * inv[i] % MOD;
        }
    }
    int comb(int n, int m){//comb(n, m)就是C(n, m) 
        if(m < 0 || m > n) return 0;
        return F[n] * 1ll * Finv[n - m] % MOD * Finv[m] % MOD;
    }
    int main(){
        init();
    }
  • 相关阅读:
    Nginx 跨域配置支持
    数据结构与算法分析
    数据结构与算法分析
    数据结构与算法分析
    Bash shell
    Bash shell
    HHUOJ 1040
    HHUOJ 1114
    HDUOJ 1171
    HDUOJ 1428
  • 原文地址:https://www.cnblogs.com/Andromeda-Galaxy/p/9882649.html
Copyright © 2011-2022 走看看