zoukankan      html  css  js  c++  java
  • 卡特兰数,组合数,斯特林数,逆元模板

      直接上板子

    const ll mod =(ll) 1e9+7;
    const int maxn = 2100001;
    ll f[maxn];
    int n;
    
    void init() {
        f[0] = f[1] = 1;
        for(int i = 2; i < maxn; i++) f[i] = (f[i-1] * i) % mod;
    }
    ll mul(ll x, ll n) {
        ll ret = 1;
        while(n) {
            if(n & 1) ret = (ret * x) % mod;
            n >>= 1;
            x = (x * x) % mod;
        }
        return ret;
    }
    ll exgcd(ll a, ll b, ll &x, ll &y) {
        if(b == 0) {
            x = 1;
            y = 0;
            return a;
        }
        else {
            ll ret = exgcd(b, a%b, x, y);
            ll tmp = x;
            x = y;
            y = tmp - a / b * y;
            return ret;
        }
    }
    ll inv(ll a) {
        ll x, y;
        exgcd(a, mod, x, y);
        return (x % mod + mod) % mod;
    }
    ll C(ll x, ll y) {
        return f[x] * inv(f[x-y]) % mod * inv(f[y]) % mod;
    }
    ll Catalan(int n) {
        return C(2*n, n) * inv(n+1) % mod;
    }
    
    ll s[maxn][maxn];
    void init2() {
        mem0(s);
        s[1][1] = 1;
        for( int i = 2; i <= maxn-1; i++ ) {
            for( int j = 1; j <= i; j++ ) {
                s[i][j] = s[i-1][j-1]+j*s[i-1][j];
                if( s[i][j] >= mod ) s[i][j] %= mod;
            }
        }
    }
    
    ll S(int n, int m) {
        return f[m]*s[n][m]%mod;
    }
    template
  • 相关阅读:
    序列化注意事项
    HTML5的新结构标签
    MVC模型
    CSS选择器权重计算规则
    HTML常用布局
    盒模型
    Spring Security 学习笔记-session并发控制
    java实例之随机点名
    java之方法重载
    java之方法
  • 原文地址:https://www.cnblogs.com/FriskyPuppy/p/7440972.html
Copyright © 2011-2022 走看看