zoukankan      html  css  js  c++  java
  • 洛谷 P3807 【模板】卢卡斯定理

    题目背景

    这是一道模板题。

    题目描述

    给定n,m,p(1le n,m,ple 10^51n,m,p105)

    求 C_{n+m}^{m} mod pCn+mm mod p

    保证P为prime

    C表示组合数。

    一个测试点内包含多组数据。

    输入输出格式

    输入格式:

     

    第一行一个整数T(Tle 10T10),表示数据组数

    第二行开始共T行,每行三个数n m p,意义如上

     

    输出格式:

     

    共T行,每行一个整数表示答案。

     

    输入输出样例

    输入样例#1: 复制
    2
    1 2 5
    2 1 5
    输出样例#1: 复制
    3
    3
    #include<cstdio>
    #include<cstring>
    #include<iostream>
    #include<algorithm>
    #define MAXN 100000
    using namespace std;
    int T,p;
    long long sum[MAXN];
    long long pow(long long a,long long x,long long p){
        long long s=1%p;
        for(;x;x>>=1){
            if(x&1)    s=s*a%p;
            a=a*a%p;
        }
        return s;
    }
    long long C(long long n,long long m){
        if(m>n)    return 0;
        return sum[n]*pow(sum[m],p-2,p)%p*pow(sum[n-m],p-2,p)%p;
    }
    long long Lucas(long long n,long long m){
        if(m==0)    return 1;
        return C(n%p,m%p)*Lucas(n/p,m/p)%p;
    }
    int main(){
        scanf("%d",&T);
        while(T--){
            int n,m;
            scanf("%d%d%d",&n,&m,&p);
            sum[0]=1;
            for(int i=1;i<=p;i++)    sum[i]=sum[i-1]*i%p;
            cout<<Lucas(n+m,n)<<endl;
        }
    }
     
    细雨斜风作晓寒。淡烟疏柳媚晴滩。入淮清洛渐漫漫。 雪沫乳花浮午盏,蓼茸蒿笋试春盘。人间有味是清欢。
  • 相关阅读:
    类与继承
    闭包、原型链和继承
    ajax(下)和“承诺”
    ajax(上)
    Ubuntu电源键软关机设置
    金老师语录摘要(七)
    金老师语录摘要(六)
    金老师语录摘要(四)
    金老师语录摘要(三)
    金老师语录摘要(二)
  • 原文地址:https://www.cnblogs.com/cangT-Tlan/p/7793850.html
Copyright © 2011-2022 走看看