zoukankan      html  css  js  c++  java
  • 码头

    struct mint {
        int x;
        mint() {x = 0; }
        mint(int _x) {x = _x; }
        friend mint operator + (const mint a, const mint b) {return (a.x + b.x) % P; }
        friend mint operator - (const mint a, const mint b) {return (a.x - b.x + P) % P; }
        friend mint operator * (const mint a, const mint b) {return 1ll * a.x * b.x % P; }
        friend mint operator ^ (mint a, int b) {
            mint c(1);
            for(; b; b >>= 1, a = a * a) if(b & 1) c = c * a;
            return c;
        }
        friend mint operator / (mint a, mint b) {return a * (b ^ (P - 2)); }
        friend mint &operator += (mint &a, const mint b) {return a = a + b; }
        friend mint &operator -= (mint &a, const mint b) {return a = a - b; }
        friend mint &operator *= (mint &a, const mint b) {return a = a * b; }
        friend mint &operator /= (mint &a, const mint b) {return a = a / b; }
    } fac[N], ifac[N], inv[N];
    void initmath(int n) {
        inv[1] = fac[0] = ifac[0] = 1;
        for(int i = 2; i <= n; i++) inv[i] = inv[P % i] * (P - P / i);
        for(int i = 1; i <= n; i++) fac[i] = fac[i - 1] * i, ifac[i] = ifac[i - 1] * inv[i];
        return;
    }
    mint binom(int n, int m) {return n < m || m < 0 ? 0 : fac[n] * ifac[m] * ifac[n - m]; }
    
  • 相关阅读:
    mahout下的KMeans Clustering实现
    信号量、互斥体和自旋锁
    找出二叉树中两个节点的最低共同父节点
    C/C++中volatile关键字
    函数指针和指针函数
    java终止线程的通用机制
    我的一次重构实践
    新手浅谈Future
    线程中添加线程
    死锁
  • 原文地址:https://www.cnblogs.com/SegmentTree/p/15670049.html
Copyright © 2011-2022 走看看