卢卡斯定理&扩展卢卡斯定理
卢卡斯定理
求\(C_m^n~mod~p\)
设\(m={a_0}^{p_0}+{a_1}^{p_1}+\cdots+{a_k}^{p_k},n={b_0}^{p_0}+{b_1}^{p_1}+\cdots+{b_k}^{p_k}\)
则\(C_m^n\equiv\prod{C_{a_i}^{b_i}}(mod~p)\)
扩展卢卡斯定理
好像这也不是什么定理,只是一个计算方法
计算\(C_m^n~mod~p\),其中\(p={p_1}^{q_1}\times{p_2}^{q_2}\times\cdots{p_k}^{q_k}\)时,我们可以先求出\(C_m^n~mod~{p_i}^{q_i}\),然后用CRT合并。
那么怎么计算\(C_m^n~mod~{p_i}^{q_i}\)呢?
\(C_m^n=\frac{m!}{n!(m-n)!}\),我们只需要算出\(m!,{n!}^{-1},{(m-n)!}^{-1}\),然后乘在一起。
zjt大爷:\(n!\)可能在模\({p_i}^{q_i}\)的意义下没有逆元啊,那这就是错的了啊
其实这里求得不是逆元(可能没有逆元),求出来的是\(a\times {p_i}^b(gcd(a,p)=1)\),前面的\(a\)用逆元,后面的次数加加减减一下就好了
问题转换成求\(n!~mod~p^q\)
例如\(n=19,p=3,q=2\):
\[
\begin{align}
&19!\\
=&1\times2\times3\times\cdots\times19\\
=&(1\times2\times4\times5\times7\times8\cdots\times16\times17\times19)\times(3\times6\times9\times12\times15\times18)\\
=&(1\times2\times4\times5\times7\times8\cdots\times16\times17)\times19\times3^6\times(1\times2\times3\times4\times5\times6)\\
=&{(1\times2\times4\times5\times7\times8)}^2\times19\times3^6\times(1\times2\times3\times4\times5\times6)
\end{align}
\]
上面这个式子分为四部分:
第一部分:\({(1\times2\times4\times5\times7\times8)}^2\)。这部分的数不超过\(p^q\)个,可以暴力算
第二部分:\(19\)。这部分的数不超过\(p^q\)个,可以暴力算
第三部分:\(3^6\)。这个在最后处理时求出\(m!,n!,(m-n)!\)分别有多少个\(p\)(设为\(x,y,z\)),则答案要乘上\(p^{x-y-z}\)
第四部分:\(1\times2\times3\times4\times5\times6\)。这个是\(\lfloor\frac{n}{p}\rfloor!\),可以递归处理
卢卡斯定理&扩展卢卡斯定理的更多相关文章
- bzoj2142 礼物——扩展卢卡斯定理
		
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2142 前几天学了扩展卢卡斯定理,今天来磕模板! 这道题式子挺好推的(连我都自己推出来了) , ...
 - 【知识总结】扩展卢卡斯定理(exLucas)
		
扩展卢卡斯定理用于求如下式子(其中\(p\)不一定是质数): \[C_n^m\ mod\ p\] 我们将这个问题由总体到局部地分为三个层次解决. 层次一:原问题 首先对\(p\)进行质因数分解: \[ ...
 - LG4720 【模板】扩展卢卡斯定理
		
扩展卢卡斯定理 求 \(C_n^m \bmod{p}\),其中 \(C\) 为组合数. \(1≤m≤n≤10^{18},2≤p≤1000000\) ,不保证 \(p\) 是质数. Fading的题解 ...
 - 【学习笔记】扩展卢卡斯定理 exLucas
		
引子 求 \[C_n^m\ \text{mod}\ p \] 不保证 \(p\) 是质数. 正文 对于传统的 Lucas 定理,必须要求 \(p\) 是质数才行.若 \(p\) 不一定是质数,则需要扩 ...
 - 洛谷P2480 [SDOI2010]古代猪文(费马小定理,卢卡斯定理,中国剩余定理,线性筛)
		
洛谷题目传送门 蒟蒻惊叹于一道小小的数论题竟能涉及这么多知识点!不过,掌握了这些知识点,拿下这道题也并非难事. 题意一行就能写下来: 给定\(N,G\),求\(G^{\sum \limits _{d| ...
 - [学习笔记]扩展LUCAS定理
		
可以先做这个题[SDOI2010]古代猪文 此算法和LUCAS定理没有半毛钱关系. [模板]扩展卢卡斯 不保证P是质数. $C_n^m=\frac{n!}{m!(n-m)!}$ 麻烦的是分母. 如果互 ...
 - 洛谷 P4720 【模板】扩展 / 卢卡斯  模板题
		
扩展卢卡斯定理 : https://www.luogu.org/problemnew/show/P4720 卢卡斯定理:https://www.luogu.org/problemnew/show/P3 ...
 - 【luoguP4720】【模板】扩展卢卡斯
		
快速阶乘与(扩展)卢卡斯定理 \(p\)为质数时 考虑 \(n!~mod~p\) 的性质 当\(n>>p\)时,不妨将\(n!\)中的因子\(p\)提出来 \(n!\) 可以写成 \(a* ...
 - [洛谷P4720] [模板] 扩展卢卡斯
		
题目传送门 求组合数的时候,如果模数p是质数,可以用卢卡斯定理解决. 但是卢卡斯定理仅仅适用于p是质数的情况. 当p不是质数的时候,我们就需要用扩展卢卡斯求解. 实际上,扩展卢卡斯=快速幂+快速乘+e ...
 
随机推荐
- Python_每日习题_0003_完全平方数
			
# 题目 一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少? # 程序分析 因为168对于指数爆炸来说实在太小了,所以可以直接省略数学分析,用最朴素的方法来获取 ...
 - 1003: [ZJOI2006]物流运输 = DP+SBFA
			
题意就是告诉你有n个点,e条边,m天,每天都会从起点到终点走一次最短路,但是有些点在某些时间段是不可走的,因此在某些天需要改变路径,每次改变路径的成本是K,总成本=n天运输路线长度之和+K*改变运输路 ...
 - 助教总结 -【福大软工实践-2017-2018-K班】
			
助教总结 -[福大软工实践-2017-2018-K班] 非常抱歉这么晚才来写总结! 助教工作 助教共发表博客39篇. 助教共点评约500条. 起步 对于常规课程的起步,通常都是在第一次课堂上由老师对课 ...
 - Misha, Grisha and Underground CodeForces - 832D (倍增树上求LCA)
			
Misha and Grisha are funny boys, so they like to use new underground. The underground has n stations ...
 - Create a toolwindow for the VBA editor with .NET(C#).
			
原始出处:http://www.cnblogs.com/Charltsing/p/VBEtoolwindow.html 最近有人问起使用C#在VBE插件中创建toolwindow的事情,由于VBE窗口 ...
 - spring security运行流程图(转)
			
原文:http://blog.csdn.net/u011511684/article/details/31394493 示例下载地址:http://download.csdn.net/detail/u ...
 - p76泛函 有限维空间真子空间不可能在全空间稠密
			
连续函数 然后多项式函数是稠密的 多项式子空间是无穷维的 多项式空间就是在全体连续函数的线性空间中稠密 有限维子空间是闭的 多项式空间也不是有限维 2的地方说 有限维真子空间必不稠密 那是对的啊 有 ...
 - 【学习总结】C-翁恺老师-入门-第3周<循环>
			
[学习总结]C-翁恺老师-入门-总 1-求一个整数的位数:引入循环while 注:循环体内要有改变循环的机会,要不然就死循环了啊! 注:手写推测程序是否正确. 注:测试程序-边界:个位数.10.0.负 ...
 - XManager&XShell如何保存登录用户和登录密码
			
Xshell配置ssh免密码登录 - qingfeng2556的博客 - CSDN博客https://blog.csdn.net/wuhenzhangxing/article/details/7948 ...
 - php之常用扩展总结
			
在此总结,开发中经常使用到的扩展,来进行日常PHP的开发工作 bcmath(精确数值处理) bz2 calendar Core ctype curl date dom ereg exif filein ...