卢卡斯定理&&中国剩余定理
卢卡斯定理(模数较小,且是质数)
式子C(m,n)=C(m/p,n/p)*C(m%p,n%p)%p
至于证明(我也不会QAQ,只要记住公式也该就好了)。
同时卢卡斯定理一般用于组合数取模上
1.首先当组合数取得模较大时,我们可以使用卢卡斯,也可以直接求
(只要数据范围不是很大,还能开得起数组,我们可以直接预处理出阶乘,逆元,需要时O(1)求,当然要是质数,不然只能现求)。
2.当组合数的模很小时,我们只能用卢卡斯,
我们可以发现假如我们照旧求的话,可能有的阶乘直接被消成0了
这个时候直接用阶乘会不准确,那么只能lusca了
3.模数非质数时,例如多个质数相乘,我们先用质因数分解,在用中国剩余定理即可。
1 ll pow(ll x,ll y,ll mod)
2 {
3 ll ans=1;
4 if(y==0)return 1;
5 while(y)
6 {
7 if(y&1)ans=ans*x%mod;
8 x=x*x%mod;
9 y>>=1;
10 }
11 return ans%mod;
12 }
13 ll C(ll x,ll y,ll mod)
14 {
15 if(y>x)return 0;
16 if(y==0)return 1;
17 return jie[x]*pow(jie[y]*jie[x-y]%mod,mod-2,mod)%mod;
18 }
19 ll lus(ll x,ll y,ll mod)
20 {
21 if(y>x)return 0;
22 if(y==0)return 1;
23 return lus(x/mod,y/mod,mod)*C(x%mod,y%mod,mod)%mod;
24 }
卢卡斯模板
中国剩余定理:
设m1,m2,m3,m4....mk两两互素,则同余方程组
x≡a1(mod m1)
x≡a2(mod m2)
x≡a3(mod m3)
x≡a4(mod m4)
x≡ak(mod mk)
一定有解,x≡(a1*M1*M1^(-1)+a2*M2*M2^(-1)+....)(mod M)
其中M=m1*m2*m3*....mk,Mi=M/mi,Mi^(-1)是Mi在模mi意义下的逆元。
至于证明自己可以在书上看了。。。。
代码
1 void exgcd(ll a,ll b,ll &x,ll &y)
2 {
3 if(b==0){
4 x=1;y=0;return ;
5 }
6 exgcd(b,a%b,x,y);
7 ll z=x;x=y;y=z-(a/b)*y;
8 return ;
9 }
10 ll sum;ll len=1;
11 void CRT()
12 {
13 for(ll i=0;i<su.size();++i)
14 {
15 len*=su[i];
16 //printf("%lld\n",len);
17 }
18 for(ll i=0;i<su.size();++i)
19 {
20 M[i]=len/su[i];
21 }
22 for(ll i=0;i<su.size();++i)
23 {
24 ll x,y;
25 exgcd(M[i],su[i],x,y);
26 x=(x+su[i])%su[i];
27 sum=(sum+ans[i]*M[i]*x)%len;
28 //printf("sum=%lld ans=%lld M=%lld x=%lld\n",sum,ans[i],M[i],x);
29 }
30 printf("%lld\n",sum);
31 }
m=∏ni=1mi,Mi=m/mi
m=∏ni=1mi,Mi=m/mim=∏ni=1mi,Mi=m/mi
m=∏ni=1mi,Mi=m/mi
卢卡斯定理&&中国剩余定理的更多相关文章
- 【bzoj3782】上学路线 dp+容斥原理+Lucas定理+中国剩余定理
题目描述 小C所在的城市的道路构成了一个方形网格,它的西南角为(0,0),东北角为(N,M).小C家住在西南角,学校在东北角.现在有T个路口进行施工,小C不能通过这些路口.小C喜欢走最短的路径到达目的 ...
- 【题解】P2480 [SDOI2010]古代猪文 - 卢卡斯定理 - 中国剩余定理
P2480 [SDOI2010]古代猪文 声明:本博客所有题解都参照了网络资料或其他博客,仅为博主想加深理解而写,如有疑问欢迎与博主讨论✧。٩(ˊᗜˋ)و✧*。 题目描述 猪王国的文明源远流长,博大精 ...
- 【bzoj1951】[Sdoi2010]古代猪文 费马小定理+Lucas定理+中国剩余定理
题目描述 求 $g^{\sum\limits_{k|n}C_{n}^{\frac nk}}\mod 999911659$ 输入 有且仅有一行:两个数N.G,用一个空格分开. 输出 有且仅有一行:一个 ...
- Ceizenpok’s formula Gym - 100633J 扩展Lucas定理 + 中国剩余定理
http://codeforces.com/gym/100633/problem/J 其实这个解法不难学的,不需要太多的数学.但是证明的话,我可能给不了严格的证明.可以看看这篇文章 http://ww ...
- hdu 5446 Unknown Treasure Lucas定理+中国剩余定理
Unknown Treasure Time Limit: 1500/1000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Other ...
- Codeforces Round #460 (Div. 2).E 费马小定理+中国剩余定理
E. Congruence Equation time limit per test 3 seconds memory limit per test 256 megabytes input stand ...
- BZOJ 3782 上学路线 ——动态规划 Lucas定理 中国剩余定理
我们枚举第一个经过的坏点,然后DP即可. 状态转移方程不是难点,难点在于组合数的处理. 将狼踩尽的博客中有很详细的证明过程,但是我只记住了结论 $n=a_1 * p^k+a_2*p^k-1...$ $ ...
- 洛谷P2480 [SDOI2010]古代猪文(费马小定理,卢卡斯定理,中国剩余定理,线性筛)
洛谷题目传送门 蒟蒻惊叹于一道小小的数论题竟能涉及这么多知识点!不过,掌握了这些知识点,拿下这道题也并非难事. 题意一行就能写下来: 给定\(N,G\),求\(G^{\sum \limits _{d| ...
- 《孙子算经》之"物不知数"题:中国剩余定理
1.<孙子算经>之"物不知数"题 今有物不知其数,三三数之剩二,五五数之剩七,七七数之剩二,问物几何? 2.中国剩余定理 定义: 设 a,b,m 都是整数. 如果 m ...
随机推荐
- window系统搭建医药后台系统
软件准备: mysql版本: 5.7 jdk版本:1.8 tomcat版本: 9.0 mysql:5.7 第一步:新建Mysql连接 新建Mysql连接 第二步:新建数据库 新建数据库 第三步 ...
- JVM垃圾回收的三种方式
* 垃圾回收有三种方式 * 一.清除:将需要回收对象的内存空间存放在内存列表中,当需要为新对象分配内存的时候,就会从内存列表中拿取空间分配.不过这种分配方式有两个缺点 * 第一个缺点是内存空间碎片化, ...
- c语言编程学习之二维数组
二维数组 c语言按照行主序存储二维数组.也就是说,二维数组元素在内存中的位置是连续的,每行末尾元素(若不是最后一行)的下一个元素就是下一行的首元素. 如下图所示 接下来我们来分析一下如何将二维数组所有 ...
- 编译课设·CLion到VS踩坑·解决·备忘录
应试用,VS使用习惯和JB系差别还是蛮大的 打不过他们就加入他们 键位修改 工具-选项 键盘:改keymap 字体和颜色:宋体必改. 自动恢复:自动保存默认3分钟 CMake:自救时可以看一下 键位名 ...
- [Java] Tomcat 部署
背景 免费web服务器,Apache组织发布,Sun公司开发 基于Java,平台无关 可部署Web应用,为客户端提供服务 使用 启动 运行 \tomcat\bin\startup.bat 出现&quo ...
- 有没有一种组合字体,中文是宋体,英文是times new roman?
有没有一种组合字体,中文是宋体,英文是times new roman? 由于日常科研工作书写需要,想问问各位大神有没有一种字体,中文是宋体,西文是times new roman,这样写论文好方便啊有没 ...
- Linux下Firefox打开文件jnlp文件
ubuntu(linux)打开jnlp文件 咘咘 2019-05-20 15:12:48 1331 收藏展开 前提条件是安装有java环境.whereis java 查看自己java安装目录.本人是在 ...
- Linux服务之nginx服务篇二(搭建)
一.简易搭建安装步骤 0.检查环境 1.配置yum源 使用yum list nginx 检查yum源中是否有nginx安装包 #官方网络源需要安装epel-* #或使用251的adv源(老师的yum源 ...
- RIP OSPF 等路由协议属于计算机网络分层中的哪一层
RIP基于UDP,BGP基于TCP,OSPF EGP基于IP 在TCP/IP协议栈中定义的路由协议用于发现和维护前往目的地的最短路径.可以认为它们不属于网络层协议(注意,是用based on,而不是实 ...
- 链路追踪_SkyWalking的部署及使用
关于链路追踪,目前比较主流是Cat,Zipkin,SkyWalking等这些工具.这篇文章主要介绍关于SkyWalking工具的. 为什么用SkyWalking,因为它基本没有代码侵入,只这一点就足够 ...