BZOJ 2982 浅谈组合数学Lucas定理
2017-10-18 21:56
483 查看
世界真的很大
这道题是真的水
看题先:
description:
求C(n,m) mod 10007 m,n∈[1,2*10^8]input:
第一行一个整数t,表示有t组数据。(t<=200)接下来t行每行两个整数n, m,如题意。
output:
T行,每行一个数,为C(n, m) mod 10007的答案。mod数小,n,m大
Lucas定理求解即可
由于n的范围固定所以可以预处理逆元
至于为什么Lucas定理是对的,Lucas知道我不知道
完整代码:
#include<stdio.h> const int mod=10007; int n,m,T; int saber[100010],inv[100010]; void init() { saber[0]=inv[0]=inv[1]=1; for(int i=1;i<=mod;i++) saber[i]=saber[i-1]*i%mod; for(int i=2;i<=mod;i++) inv[i]=(mod-mod/i)*inv[mod%i]%mod; for(int i=1;i<=mod;i++) inv[i]=inv[i-1]*inv[i]%mod; } int Misaka(int a,int b) { if(a<b) return 0; if(a<mod) return saber[a]*inv[b]%mod*inv[a-b]%mod; return Misaka(a/mod,b/mod) * Misaka(a%mod,b%mod) %mod; } int main() { init(); scanf("%d",&T); while(T--) { scanf("%d%d",&n,&m); printf("%d\n",Misaka(n,m)%mod); } return 0; } /* Whoso pulleth out this sword from this stone and anvil is duly born King of all England */
嗯,就是这样
相关文章推荐
- [BZOJ2982]combination(组合数学lucas定理)
- 组合数学lucas定理 BZOJ2982 combination
- [bzoj2982]combination(组合数学lucas定理)
- 【bzoj3782】上学路线 组合数学+Lucas定理+中国剩余定理
- BZOJ 2111: [ZJOI2010]Perm 排列计数|组合数学|Lucas定理|DP
- Bzoj 4403: 序列统计 Lucas定理,组合数学,数论
- BZOJ 2111 ZJOI2010 Perm 排列计数 组合数学+Lucas定理
- bzoj 4591: [Shoi2015]超能粒子炮·改 Lucas定理+组合数学
- bzoj 4403: 序列统计 lucas定理+组合数学
- [BZOJ2111][ZJOI2010]Perm 排列计数(组合数学+lucas定理)
- bzoj 2111: [ZJOI2010]Perm 排列计数 (组合数学+Lucas定理)
- nefuoj Garden visiting 628 (组合数学&&Lucas定理)
- 【BZOJ2982】combination(Lucas定理)
- BZOJ 2142 浅谈LuCas EXtra拓展卢卡斯定理解合数组合式
- FZUoj 2020 组合 (组合数学&&Lucas定理)
- bzoj2982 -- Lucas定理
- [bzoj4591][Shoi2015][超能粒子炮·改] (lucas定理+组合计数)
- 【bzoj2982】【combination】【Lucas定理】
- BZOJ 3505 浅谈组合数学在图形区域分割问题的应用
- [ZOJ3557]How Many Sets II(组合数学Lucas定理)