首页 > 其他 > 详细

[BZOJ2982]combination Lucas定理

时间:2017-11-03 22:25:08      阅读:216      评论:0      收藏:0      [点我收藏+]

题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=2982

$C(N,M)\% P = C(N\% P,M\% P) * C(N/P,M/P)\% P$

 1 #include<cstdio>
 2 #include<cstring>
 3 #include<algorithm>
 4 using namespace std;
 5 const int mod=1e4+7;
 6 int inv[10010],fac[10010];
 7 int C(int x,int y){
 8     if(x<y) return 0;
 9     return fac[x]*inv[fac[y]]%mod*inv[fac[x-y]]%mod;
10 }
11 int main(){
12     inv[1]=1;for(int i=2;i<10007;i++) inv[i]=(mod-mod/i)*inv[mod%i]%mod;
13     fac[0]=1;for(int i=1;i<10007;i++) fac[i]=fac[i-1]*i%mod;
14     int Test;
15     scanf("%d",&Test);
16     while(Test--){
17         int N,M;
18         scanf("%d%d",&N,&M);
19         if(N<M){
20             puts("0");
21             continue;
22         }
23         int Ans=1;
24         while(M){
25             Ans=Ans*C(N%mod,M%mod)%mod;
26             N/=mod;
27             M/=mod;
28         }
29         printf("%d\n",Ans);
30     }
31     return 0;
32 }

 

[BZOJ2982]combination Lucas定理

原文:http://www.cnblogs.com/halfrot/p/7780630.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!