卢卡斯Lucas定理
卢卡斯Lucas定理
LUCAS\mathscr{LUCAS} LUCAS
内容
(nm)≡(⌊np⌋⌊mp⌋)⋅(nmodpmmodp)modp\binom{n}{m} \equiv \binom{\lfloor \frac{n}{p} \rfloor}{\lfloor \frac{m}{p} \rfloor} \cdot \binom{n \mod p}{m \mod p} \mod p (mn)≡(⌊pm⌋⌊pn⌋)⋅(mmodpnmodp)modp
其中ppp为质数。
上式称为Lucas定理。
证明
生成函数(1+x)n(1+x)^n(1+x)n项xmx^{m}xm前的系数为(nm)\binom{n}{m}(mn),因此
(1+x)n≡(1+x)p⌊np⌋(1+x)nmodpmodp(1+x)^n \equiv (1 + x)^{p \lfloor \frac{n}{p} \rfloor} (1 + x)^{n \mod p} \mod p (1+x)n≡(1+x)p⌊pn⌋(1+x)nmodpmodp
多项式(1+x)pmodp(1 + x)^p \mod p(1+x)pmodp:
(1+x)p≡∑i=0p(pi)xi=1+xpmodp(1 + x)^p \equiv \sum_{i = 0}^{p}\binom{p}{i}x^i = 1 + x^p \mod p (1+x)p≡i=0∑p(ip)xi=1+xpmodp
此处考虑ppp是质数,式子(pi)\binom{p}{i}(ip),当且仅当i=0i =0i=0或i=pi=pi=p的时候模为111。
故:
(1+xp)⌊np⌋(1+x)nmodpmodp(1 + x^p)^{\lfloor \frac{n}{p} \rfloor} (1 + x)^{n \mod p} \mod p (1+xp)⌊pn⌋(1+x)nmodpmodp
那么卷积对xmx^mxm项的贡献只有当前项取ppp的倍数,后项取余数的时候才能取到,
因此:
(nm)≡(⌊np⌋⌊mp⌋)⋅(nmodpmmodp)modp\binom{n}{m} \equiv \binom{\lfloor \frac{n}{p} \rfloor}{\lfloor \frac{m}{p} \rfloor} \cdot \binom{n \mod p}{m \mod p} \mod p (mn)≡(⌊pm⌋⌊pn⌋)⋅(mmodpnmodp)modp
证毕。
例题
P3807
预处理阶乘+费马小定理求逆元,Lucas定理的运用。
#include <bits/stdc++.h>using namespace std;typedef long long ll;#define FR freopen("in.txt", "r", stdin)
#define FW freopen("out1.txt", "w", stdout)#define MAXT 100010
#define INV(x) fpow(x, p - 2, p)ll fac[MAXT];ll fpow(ll a, ll e, ll p)
{ll ans = 1;a %= p;for (; e; e >>= 1, a = (a * a) % p){if (e & 1)ans = (ans * a) % p;}return ans;
}void prework(ll p)
{fac[0] = fac[1] = 1;for (ll i = 2; i <= p; i++){fac[i] = (fac[i - 1] * i) % p;}
}ll C(ll n, ll m, ll p)
{if (m > n)return 0;if (m == 0)return 1;return (((fac[n] * INV(fac[m])) % p) * INV(fac[n - m])) % p;
}ll lucas(ll n, ll m, ll p)
{if (m == 0)return 1;return (lucas(n / p, m / p, p) * C(n % p, m % p, p)) % p;
}int main()
{int t;scanf("%d", &t);while (t--){ll n, m, p;scanf("%lld %lld %lld", &n, &m, &p);prework(p);printf("%lld\n", lucas(n + m, n, p));}return 0;
}
卢卡斯Lucas定理相关推荐
- Lucas(卢卡斯)定理
Lucas定理,是用来快速求解一个组合数对于一个数(保证这一个数是质数)的模. 那么,我们先来看Lucas定理的求解式: \(\binom{n}{m}\%p\)(\(p\)是质数) 这样的一个式子,在 ...
- 【luogu P3807】【模板】卢卡斯定理/Lucas 定理(含 Lucas 定理证明)
[模板]卢卡斯定理/Lucas 定理 题目链接:luogu P3807 题目大意 求 C(n,n+m)%p 的值. p 保证是质数. 思路 Lucas 定理内容 对于非负整数 nnn,mmm,质数 p ...
- Lucas(卢卡斯)定理 【数论】
Lucas定理是用来求 c(n,m) mod p,p为素数的值. 表达式 C(n,m)%p=C(n/p,m/p)*C(n%p,m%p)%p 应用 大组合数求模 typedef long long ...
- [学习笔记]扩展LUCAS定理
可以先做这个题[SDOI2010]古代猪文 此算法和LUCAS定理没有半毛钱关系. [模板]扩展卢卡斯 不保证P是质数. $C_n^m=\frac{n!}{m!(n-m)!}$ 麻烦的是分母. 如果互 ...
- Lucas定理扩展Lucas
Lucas定理 求解 C n m m o d p C_n^m\mod p Cnmmodp (p为素数) 蒟蒻不会证明,记着递推公式就好=_= L u c a s ( n , m ) = C ( ...
- lucas定理、拓展lucas定理学习小结
lucas定理 正题 首先,这玩意就是下面这个式子: C m n % p = C m / p n / p ∗ C m % p n % p % p C_m^n\%p=C_{m/p}^{n/p}*C_{m ...
- Lucas 定理学习笔记
Lucas 定理 Lucas 定理用于求解大组合数取模的问题,其中模数必须为素数.正常的组合数运算可以通过递推公式求解(详见排列组合),但当问题规模很大,而模数是一个不大的质数的时候,就不能简单地通过 ...
- 【排列组合】 组合(lucas定理)
题目描述 给出组合数 C(n,m) 表示从 n 个元素中选出 m 个元素的方案数.例如 C(5,2)=10,C(4,2)=6.可是当 n,m 比较大的时候,C(n,m) 很大.于是 xiaobo 希望 ...
- 数论(Lucas定理) HDOJ 4349 Xiao Ming's Hope
题目传送门 题意:求C (n,0),C (n,1),C (n,2)...C (n,n)中奇数的个数 分析:Lucas 定理:A.B是非负整数,p是质数.AB写成p进制:A=a[n]a[n-1]...a ...
- szucodeforce训练1081C组合数学lucas定理,div2 627的D dfs +剪枝优化,697D Puzzles{dfs序+概率}
给你n个方格排成一行,有m种颜色,然后要把这n个方格分成k+1段,每段涂不同的颜色,问有多少种方法. 组合数学Lucas定理 排列组合问题,首先要在n-1个位置里面选出k个位置当作段与段的分割点,然后 ...
最新文章
- python logging模块使用_python logging模块使用
- 离线或在线加载pytorch、mmdetection预训练模型vgg、resnet、alexnet等
- c语言数字和字母排序,C# 数字和字母的混合排序
- SAP 产品部署方式及定价模型
- VS2019 产品密钥
- 确定权重的方法-主成分分析
- 《统计学》第八版贾俊平第三章课后答案Excel
- 如何新浪微博html5,新浪微博接入Html5游戏 注重轻量碎片化
- php请求传感器数据流通道号,一汽大众发动机数据流与通道号 匹配设定数据
- 「又报错了TAT」 编译器报错是什么原因error: lvalue required as left operand of assignment|
- RO、RW和ZI数据解析
- mysql Incorrect string value \xF0\x9F\x98\x84\xF0\x9F
- MacBook 谷歌插件打包
- 康奈尔大学计算机生物学是,康奈尔大学生物统计硕士介绍
- 华为运营商级路由器配置示例 | 公网IPv6 over SRv6 TE Policy
- 理解什么是DTO?什么是AutoMapper?
- Dom——隔行变色、分时显示问候语
- 【Sofice小司笔记】1 Java,包含java基础知识,集合,面向对象,反射,泛型等
- html只显示一句话_您所说的话:如何最大化多显示器设置
- ubuntu下的python的diango环境安装
热门文章
- 《艰难的制造》:4星。基本是关于制造业的报告文学。严重剧透。
- 互联网dmz区_服务器设置于DMZ区,DMZ区是什么意思?
- Eclipse中各种编码格式及设置
- 探探这只反语言暴力公益短片 提供了一个新视角
- 爬取Bilibili视频评论,并生成云词图
- 如何在eclipse中建立一个安卓工程
- Chrome更新89版本后,sessionStorage丢失a标签跳转丢失sessionStorage
- 如何使用FFmpeg命令处理音视频
- SwiftUI Image
- networks.XXX.ipam.config value Additional properties are not allowed (‘gateway‘ was unexpected) 解决办法