zoukankan      html  css  js  c++  java
  • HDU

    #include<cstdio>
    #include<cstdlib>
    #include<algorithm>
    #include<cstring>
    #include<vector>
    #define MAXN 100000+10
    #define ll long long
    #define pb push_back
    #define ft first
    #define sc second
    #define mp make_pair
    #define pil pair<int,ll>
    using namespace std;
    int n,m,p;
    ll fac[MAXN],inv[MAXN],finv[MAXN];
    ll Pow(ll x,ll p,ll MOD){
        ll ret=1;
        while(p){
            if(p&1){(ret*=x)%=MOD;}
            (x*=x)%=MOD;
            p>>=1;
        }
        return ret;
    }
    ll ni(ll x){
        return Pow(x,p-2,p);    
    }
    ll C(int n,int m){
        if(m>n)return 0;
        return fac[n]*ni(fac[m])*ni(fac[n-m])%p;
    }
    ll lucas(int n,int m){
    
        ll ret=1;
        while(n>=p||m>=p){
            if(!m)return ret;
            int t1=n%p,t2=m%p;
            if(t1<t2)return 0;
            (ret*=C(t1,t2))%=p;
            n/=p,m/=p;    
        }
        return ret*C(n,m)%p;
    }
    void solve(){
        scanf("%d%d%d",&n,&m,&p);
        fac[0]=fac[1]=1;
    //    finv[0]=finv[1]=1;
    //    inv[1]=1;
        for(int i=2;i<=p;i++){
            fac[i]=fac[i-1]*i%p;
    //        inv[i]=p-(inv[p%i]*(p/i)%p);
    //        finv[i]=finv[i-1]*inv[i]%p;
        }
        printf("%lld
    ",lucas(n+m,m));
    }
    int main()
    {
    //    freopen("data.in","r",stdin);
        int T;
        scanf("%d",&T);
        while(T--){
            solve();
        }
        return 0;
    }
  • 相关阅读:
    站立会议(3)
    站立会议(2)
    站立会议(1)
    团队报告
    Laravel5.1 模型 --一对多关系
    jQuery 操作DOM
    Laravel5.1 模型 --一对一关系
    Laravel5.1 模型--查询作用域
    Laravel5.1 模型--ModelFactory
    jQuery 选择器
  • 原文地址:https://www.cnblogs.com/w-h-h/p/8315506.html
Copyright © 2011-2022 走看看