洛谷 P3807 【模板】卢卡斯定理
题目背景
这是一道模板题。
题目描述
给定n,m,p(1\le n,m,p\le 10^51≤n,m,p≤105)
求 C_{n+m}^{m}\ mod\ pCn+mm mod p
保证P为prime
C表示组合数。
一个测试点内包含多组数据。
输入输出格式
输入格式:
第一行一个整数T(T\le 10T≤10),表示数据组数
第二行开始共T行,每行三个数n m p,意义如上
输出格式:
共T行,每行一个整数表示答案。
输入输出样例
2 1 2 5 2 1 5
3 3
卢卡斯定理
$C(n,m) \% p = C(n \% p, m \% p) * C(n / p, m / p)$
对于这道题来说,p是素数,解逆元的时候用快速幂
1 #include<cstdio> 2 #include<cstring> 3 #include<cmath> 4 #include<algorithm> 5 #define LL long long 6 using namespace std; 7 const LL MAXN=1e6+10; 8 const LL INF=0x7fffff; 9 inline LL read() 10 { 11 char c=getchar();LL flag=1,x=0; 12 while(c<'0'||c>'9') {if(c=='-') flag=-1;c=getchar();} 13 while(c>='0'&&c<='9') x=x*10+c-48,c=getchar();return x*flag; 14 } 15 LL js[MAXN]; 16 LL fastpow(LL a,LL p,LL mod) 17 { 18 LL base=1; 19 while(p) 20 { 21 if(p&1) base=(base*a)%mod; 22 a=(a*a)%mod; 23 p>>=1; 24 } 25 return base; 26 } 27 LL C(LL n,LL m,LL mod) 28 { 29 if(m>n) return 0; 30 return js[n]*fastpow(js[m],mod-2,mod)*fastpow(js[n-m],mod-2,mod)%mod; 31 } 32 LL Lucas(LL n,LL m,LL mod) 33 { 34 if(m==0) return 1; 35 else return C(n%mod,m%mod,mod)*(Lucas(n/mod,m/mod,mod))%mod; 36 } 37 int main() 38 { 39 LL T=read(); 40 js[0]=1; 41 while(T--) 42 { 43 LL n=read(),m=read(),mod=read(); 44 for(LL i=1;i<=mod;i++) js[i]=(js[i-1]*i)%mod; 45 printf("%lld\n",Lucas(n+m,m,mod)%mod); 46 } 47 return 0; 48 }
转载于:https://www.cnblogs.com/zwfymqz/p/7788177.html
洛谷 P3807 【模板】卢卡斯定理相关推荐
- 洛谷——P3807 【模板】卢卡斯定理
P3807 [模板]卢卡斯定理 洛谷智推模板题,qwq,还是太弱啦,组合数基础模板题还没做过... 给定n,m,p($1\le n,m,p\le 10^5$) 求 $C_{n+m}^{m}\ mod\ ...
- 专题·树链剖分【including 洛谷·【模板】树链剖分
初见安~~~终于学会了树剖~~~ [兴奋]当初机房的大佬在学树剖的时候我反复强调过:"学树剖没有前途的!!!" 恩.真香. 一.重链与重儿子 所谓树剖--树链剖分,就是赋予一个链的 ...
- 洛谷·【模板】点分树 | 震波【including 点分树
初见安-这里是传送门:洛谷P6329 [模板]点分树 | 震波 一.点分树 其实你会点分治的话,点分树就是把点分治时的重心提出来重新连城一棵树. 比如当前点是u,求出子树v的重心root后将root与 ...
- OI模板 卢卡斯定理
卢卡斯定理 / Lucas\text{Lucas}Lucas定理 现有问题: 给定整数 n,m,pn,m,pn,m,p,求 (nm)modp\dbinom{n}{m}\bmod p(mn)modp, ...
- 洛谷P3807 【模板】卢卡斯定理exgcd
题目背景 这是一道模板题. 题目描述 给定n,m,p(1\le n,m,p\le 10^51≤n,m,p≤105 ) 求 C_{n+m}^{m}\ mod\ pCn+mm mod p 保证P为pri ...
- [洛谷P3807]【模板】卢卡斯定理
题目大意:给你$n,m,p(p \in \rm prime)$,求出$C_{n + m}^m\bmod p(可能p\leqslant n,m)$ 题解:卢卡斯$Lucas$定理,$C_B^A\bmod ...
- 洛谷—— P3807 【模板】卢卡斯定理
https://www.luogu.org/problemnew/show/3807 题目背景 这是一道模板题. 题目描述 给定n,m,p(1\le n,m,p\le 10^51≤n,m,p≤105) ...
- 洛谷.4245.[模板]任意模数NTT(MTT/三模数NTT)
题目链接 三模数\(NTT\): 就是多模数\(NTT\)最后\(CRT\)一下...下面两篇讲的都挺明白的. https://blog.csdn.net/kscla/article/details/ ...
- 洛谷.4897.[模板]最小割树(Dinic)
题目链接 最小割树模板.具体见:https://www.cnblogs.com/SovietPower/p/9734013.html. ISAP不知为啥T成0分了.. Dinic: //1566ms ...
最新文章
- ISA SERVER日志存放SQL SERVER中
- 理解PHP的四大概念对网站开发至关重要
- 使用Asible批量部署yum仓库
- mysql中ifnull函数
- 昨天,A站受黑客攻击千万条用户数据外泄,量子加密能救得了吗?
- python网页提交表单_用Python的urllib库提交WEB表单
- 中国移动全球通寻宝第四期攻略
- 商业模式匹配乃同质化产品竞争终极大杀器
- python super()
- sqlserver 2005 快速插入数据
- 【LEDE】x86软路由之路-12-浅谈复杂网络环境中的AP优化
- C语言字符串笔试题含答案
- 完美玩机 三星I9000解锁工具实测教程
- 大数据主导的七大领域,看看你是否身处其中!
- 下载unreal代码出现fatal: early EOF fatal: index-pack failed解决办法
- java小程序计算器_java 小程序 计算器
- 【渝粤题库】广东开放大学 财务会计(一) 形成性考核
- 基于Landsat的地表温度反演——单窗算法
- 关键词的选择在应用商城的重要性
- Notice: Use of undefined constant MCRYPT_RIJNDAEL_128 - assumed ‘MCRYPT_RIJNDAEL_128‘ in
热门文章
- leetcode 35. 搜索插入位置(二分法搜索失败的情况)
- 我的开源项目:TS封装格式分析器
- html页面转换pdf.txt
- OU计算机移动无法访问,配置状态尚未应用-知识库
- 计算机系统自带的文字处理程序,如何使用win7系统电脑的内置字符编辑程序
- c语言判断字符串的编码,C语言中判断一个char*是不是utf8编码
- java萍方字体_苹方字体合集 - osc_flhsyn6i的个人空间 - OSCHINA - 中文开源技术交流社区...
- jquery操作文档节点的属性
- 操作系统—进程的定义、组成和组织方式(思维导图)
- 最短路径和最小生成树的区别