2982: combination|lucas定理

来源:互联网 发布:node sass 自动编译 编辑:程序博客网 时间:2024/06/06 07:05

卢卡斯定理裸题

忘输出回车wa了两发

#include<bits/stdc++.h>#define M 10007using namespace std;int fac[10086],inv[10086];int cal(int x){int y=M-2,ans=1;while(y){if(y&1)ans=ans*x%M;x=x*x%M;y>>=1;}return ans;}void pre(){fac[0]=1; for(int i=1;i<10007;i++) fac[i]=fac[i-1]*i%M;inv[0]=1; for(int i=1;i<10007;i++) inv[i]=inv[i-1]*cal(i)%M;}int C(int n,int m)  {      if(n<m)          return 0;      if(n<M&&m<M)          return fac[n]*inv[m]%M*inv[n-m]%M;      return C(n%M,m%M)*C(n/M,m/M)%M;  }  int main(){int T,a,b;scanf("%d",&T);pre();while(T--){scanf("%d%d",&a,&b);printf("%d\n",C(a,b));}return 0;}


1 0
原创粉丝点击