P3807 【模板】卢卡斯定理

洛谷智推模板题,qwq,还是太弱啦,组合数基础模板题还没做过。。。

给定n,m,p($1\le n,m,p\le 10^5$)

求 $C_{n+m}^{m}\ mod\ p$

$lucas$定理:

$C_{n}^{m}=C_{n\%p}^{m\%p}\times C_{n/p}^{m/p}\mod p$

相当于把$n,m$写成$p$进制数($A_1,A_2\dotso A_k$),($B_1,B_2\dotso B_k$)

$C_{n}^{m}=C_{A_1}^{B_1}\times C_{A_2}^{B_2}\times \dots \times C_{A_k}^{B_k}$

证明略。。。(还不是因为博主弱,不会证吗。。。)

Lucas+费马小定理

#include<iostream>
#include<cstdio>
#include<algorithm>#define N 200004
#define LL long long
using namespace std;LL f[N];LL pow(LL a,LL b,LL p){LL s=1;for(;b;b>>=1,a=a*a%p)if(b&1) s=s*a%p;return s;
}LL C(LL n,LL m,LL p){if(m>n) return 0;return (f[n]*pow(f[m],p-2,p))%p*(pow(f[n-m],p-2,p)%p)%p;
}LL lucas(LL n,LL m,LL p){if(!m) return 1;return C(n%p,m%p,p)*lucas(n/p,m/p,p)%p;
}LL T,n,m,p;int main()
{scanf("%lld",&T);while(T--){scanf("%lld%lld%lld",&n,&m,&p);f[0]=1;for(int i=1;i<=p;i++) f[i]=f[i-1]*i%p;printf("%lld\n",lucas(n+m,m,p));}return 0;
}

lucas+逆元

#include<iostream>
#include<cstdio>
#include<algorithm>#define N 200004
#define LL long long
using namespace std;LL f[N],inv[N];LL lucas(LL n,LL m,LL p){if(n<m) return 0;else if(n<p) return f[n]*inv[m]*inv[n-m]%p;else return lucas(n%p,m%p,p)*lucas(n/p,m/p,p)%p;
}LL T,n,m,p;int main()
{scanf("%lld",&T);while(T--){scanf("%lld%lld%lld",&n,&m,&p);f[0]=f[1]=inv[1]=inv[0]=1;for(int i=2;i<=p;i++) f[i]=f[i-1]*i%p;for(int i=2;i<=p;i++) inv[i]=(p-p/i)*inv[p%i]%p;for(int i=2;i<=p;i++) inv[i]=inv[i]*inv[i-1]%p;printf("%lld\n",lucas(n+m,m,p));}return 0;
}

转载于:https://www.cnblogs.com/song-/p/9776026.html

洛谷——P3807 【模板】卢卡斯定理相关推荐

  1. 洛谷 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为prim ...

  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. html 动态创建表格,jquery动态创建表格
  2. directoryinfo 读取 映射磁盘_LoaRunner性能测试系统学习教程:磁盘监控(5)
  3. [vue] vue组件之间的通信都有哪些?
  4. 【集合框架】JDK1.8源码分析HashSet LinkedHashSet(八)
  5. 《兔兔公司的历史》那些年,百度的荣耀和沉沦
  6. Springboot/Cloud集成Sentinel进阶实战
  7. 基于JAVA+SpringMVC+Mybatis+MYSQL的微信小程序图书借阅管理系统
  8. 很多朋友问做自媒体的意义是什么?
  9. 23亿美元大市场,NFV做好了准备吗?
  10. 190410每日一句
  11. servlet的配置(映射)以及生命周期
  12. editormd富文本编辑器
  13. postman常用断言
  14. win10开机桌面假死鼠标能动怎么办
  15. 数据增强——mixup
  16. Local Generic Representation for Face Recognition with Single Sample per Person (ACCV, 2014)
  17. Base64 erlang
  18. Latex常见数学符号写法
  19. 小猪佩奇篇(turtle)
  20. 织梦文章发布 html仅动态,织梦dedecms采集文章后导出为仅动态的解决方案

热门文章

  1. MapInfo开发心得——控件篇【转】
  2. JVM垃圾回收3——参数详解(转载)
  3. Redhat Enterprise linux 5 的安装
  4. Django1.7开发博客
  5. Scheme 语言概要
  6. Hadoop Streaming 编程
  7. extern“C”有什么作用
  8. 计算机组成原理:中央处理器
  9. 《深入理解计算机系统》读书笔记五:信息的表示和存储
  10. 用python编写一个高效搜索代码工具