题目背景

这是一道模板题。

题目描述

给定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行,每行一个整数表示答案。

输入输出样例

输入样例#1: 复制

2
1 2 5
2 1 5

输出样例#1: 复制

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 【模板】卢卡斯定理相关推荐

  1. 洛谷——P3807 【模板】卢卡斯定理

    P3807 [模板]卢卡斯定理 洛谷智推模板题,qwq,还是太弱啦,组合数基础模板题还没做过... 给定n,m,p($1\le n,m,p\le 10^5$) 求 $C_{n+m}^{m}\ mod\ ...

  2. 专题·树链剖分【including 洛谷·【模板】树链剖分

    初见安~~~终于学会了树剖~~~ [兴奋]当初机房的大佬在学树剖的时候我反复强调过:"学树剖没有前途的!!!" 恩.真香. 一.重链与重儿子 所谓树剖--树链剖分,就是赋予一个链的 ...

  3. 洛谷·【模板】点分树 | 震波【including 点分树

    初见安-这里是传送门:洛谷P6329 [模板]点分树 | 震波 一.点分树 其实你会点分治的话,点分树就是把点分治时的重心提出来重新连城一棵树. 比如当前点是u,求出子树v的重心root后将root与 ...

  4. OI模板 卢卡斯定理

    卢卡斯定理 / Lucas\text{Lucas}Lucas定理 现有问题: 给定整数 n,m,pn,m,pn,m,p,求 (nm)modp\dbinom{n}{m}\bmod p(mn​)modp, ...

  5. 洛谷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 ...

  6. [洛谷P3807]【模板】卢卡斯定理

    题目大意:给你$n,m,p(p \in \rm prime)$,求出$C_{n + m}^m\bmod p(可能p\leqslant n,m)$ 题解:卢卡斯$Lucas$定理,$C_B^A\bmod ...

  7. 洛谷—— P3807 【模板】卢卡斯定理

    https://www.luogu.org/problemnew/show/3807 题目背景 这是一道模板题. 题目描述 给定n,m,p(1\le n,m,p\le 10^51≤n,m,p≤105) ...

  8. 洛谷.4245.[模板]任意模数NTT(MTT/三模数NTT)

    题目链接 三模数\(NTT\): 就是多模数\(NTT\)最后\(CRT\)一下...下面两篇讲的都挺明白的. https://blog.csdn.net/kscla/article/details/ ...

  9. 洛谷.4897.[模板]最小割树(Dinic)

    题目链接 最小割树模板.具体见:https://www.cnblogs.com/SovietPower/p/9734013.html. ISAP不知为啥T成0分了.. Dinic: //1566ms ...

最新文章

  1. ISA SERVER日志存放SQL SERVER中
  2. 理解PHP的四大概念对网站开发至关重要
  3. 使用Asible批量部署yum仓库
  4. mysql中ifnull函数
  5. 昨天,A站受黑客攻击千万条用户数据外泄,量子加密能救得了吗?
  6. python网页提交表单_用Python的urllib库提交WEB表单
  7. 中国移动全球通寻宝第四期攻略
  8. 商业模式匹配乃同质化产品竞争终极大杀器
  9. python super()
  10. sqlserver 2005 快速插入数据
  11. 【LEDE】x86软路由之路-12-浅谈复杂网络环境中的AP优化
  12. C语言字符串笔试题含答案
  13. 完美玩机 三星I9000解锁工具实测教程
  14. 大数据主导的七大领域,看看你是否身处其中!
  15. 下载unreal代码出现fatal: early EOF fatal: index-pack failed解决办法
  16. java小程序计算器_java 小程序 计算器
  17. 【渝粤题库】广东开放大学 财务会计(一) 形成性考核
  18. 基于Landsat的地表温度反演——单窗算法
  19. 关键词的选择在应用商城的重要性
  20. Notice: Use of undefined constant MCRYPT_RIJNDAEL_128 - assumed ‘MCRYPT_RIJNDAEL_128‘ in

热门文章

  1. leetcode 35. 搜索插入位置(二分法搜索失败的情况)
  2. 我的开源项目:TS封装格式分析器
  3. html页面转换pdf.txt
  4. OU计算机移动无法访问,配置状态尚未应用-知识库
  5. 计算机系统自带的文字处理程序,如何使用win7系统电脑的内置字符编辑程序
  6. c语言判断字符串的编码,C语言中判断一个char*是不是utf8编码
  7. java萍方字体_苹方字体合集 - osc_flhsyn6i的个人空间 - OSCHINA - 中文开源技术交流社区...
  8. jquery操作文档节点的属性
  9. 操作系统—进程的定义、组成和组织方式(思维导图)
  10. 最短路径和最小生成树的区别