总结:Lucas定理
来源:互联网 发布:世界经济数据库 oecd 编辑:程序博客网 时间:2024/06/05 13:27
证明并不会
公式: Cyx mod p=Cymodpxmodp *Lucasy/px/p
当然答案是要递归得出的。
限制条件:
1.因为求组合数是用暴力方法求的,所以p不能太大
2.组合数记得mod,用逆元来解决
3.要判断一些特殊情况,防止RE,
如:
例题:洛谷 P3807 【模板】卢卡斯定理
代码如下:
#include<cstdio>#include<string>using namespace std;const int maxn=100005;long long T,n,m,tt,pow[maxn];long long qsm(long long x,long long y) { long long ret=1ll,p=x; while (y>0) { if (y%2ll==1ll) ret=(ret*p)%tt; y=y/2; p=(p*p)%tt; } return ret;}long long c(long long x,long long y) { if (x>y) return 0; return ((pow[y]*qsm((pow[y-x]*pow[x])%tt,tt-2))%tt)%tt;}long long lucas(long long x,long long y) { if (x==0) return 1; if (x<tt&&y<tt) return c(x,y); else return (c(x%tt,y%tt)*lucas(x/tt,y/tt))%tt;}int main(){ scanf("%lld",&T); while (T--) { scanf("%lld %lld %lld",&n,&m,&tt); pow[0]=1ll; for (int i=1;i<=100000;i++) pow[i]=(pow[i-1]*i)%tt; printf("%lld\n",lucas(n,m+n)); } return 0;}
阅读全文
0 0
- 总结:Lucas定理
- 【学习总结】数学-lucas定理
- 【总结】lucas 定理 + 中国剩余定理
- Lucas 定理
- Lucas 定理
- lucas定理
- Lucas定理
- Lucas 定理
- Lucas 定理
- Lucas 定理
- Lucas 定理
- Lucas定理
- lucas定理
- lucas定理
- Lucas定理
- Lucas定理
- Lucas 定理。。。
- lucas定理
- vim搜索设置高亮
- java的(PO,VO,TO,BO,DAO,POJO)解释
- 从键盘输入数据并显示
- 欢迎使用CSDN-markdown编辑器
- python 基本语句
- 总结:Lucas定理
- 解决Mac下ant错误:找不到或无法加载主类 org.apache.tools.ant.launch.Launcher
- IDEA使用--字体、编码和基本设置
- log4j2常用Appender介绍
- Connected Component in Undirected Graph
- airticket 插件开发
- CSS学习01-概述
- Effective Java
- (原创)选择排序与快速排序及D&C算法的延伸