zoukankan      html  css  js  c++  java
  • bzoj2982 -- Lucas定理

    Lucas定理裸题。。

    Lucas定理:C(n,m)=C(n%p,m%p)*C(n/p,m/p)%p

    预处理出阶乘、逆元的阶乘就可以了。

    代码:

     1 #include<iostream>
     2 #include<cstdio>
     3 #include<cstring>
     4 #include<algorithm>
     5 #include<cmath>
     6 using namespace std;
     7 #define p 10007
     8 int i,j,k,n,m,inv[p],fac[p],fac2[p],t;
     9 inline void Init(){
    10     for(fac[0]=fac[1]=1,i=2;i<p;i++)fac[i]=fac[i-1]*i%p;
    11     for(inv[0]=inv[1]=fac2[0]=fac2[1]=1,i=2;i<p;i++)inv[i]=inv[p%i]*(p-p/i)%p,fac2[i]=fac2[i-1]*inv[i]%p;
    12 }
    13 inline int C(int n,int m){
    14     if(n<m)return 0;
    15     return fac[n]*fac2[m]%p*fac2[n-m]%p;
    16 }
    17 inline int Get(int n,int m){
    18     if(m==0)return 1;
    19     return C(n%p,m%p)*Get(n/p,m/p)%p;
    20 }
    21 int main(){
    22     scanf("%d",&t);
    23     Init();
    24     while(t--){
    25         scanf("%d%d",&n,&m);
    26         printf("%d
    ",Get(n,m));
    27     }
    28     return 0;
    29 }
    bzoj2982
  • 相关阅读:
    python字符串字典列表互转
    列表迭代器 ListIterator
    并发修改异常处理
    二月天 案例
    Calendar类
    Date类
    冒泡排序
    内部类
    python第三天
    Layui——checkbox使用
  • 原文地址:https://www.cnblogs.com/gjghfd/p/6729251.html
Copyright © 2011-2022 走看看