卢卡斯定理&&中国剩余定理
卢卡斯定理(模数较小,且是质数)
式子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 ...
随机推荐
- SecureCRT 基本设置
1:字体与大小 Lucida Console 四号 2:声音关闭 Terminal-->Audio bell不勾选 默认网络工程师常用: Terminal-->Emulation--& ...
- K8s Scheduler 在调度 pod 过程中遗漏部分节点的问题排查
问题现象 在TKE控制台上新建版本为v1.18.4(详细版本号 < v1.18.4-tke.5)的独立集群,其中,集群的节点信息如下: 有3个master node和1个worker node, ...
- (10)MySQL进阶篇SQL优化(InnoDB锁-间隙锁)
1.概述 当我们用范围条件而不是相等条件检索数据,并请求共享或排他锁时,InnoDB会给符合条件的已有数据记录的索引项加锁:对于键值在条件范围内但并不存在的记录,叫做"间隙(GAP)&quo ...
- docker学习之使用 DockerFile 构建镜像并搭建 swarm+compose 集群
题目要求 (1)将springboot应用程序打成jar包:Hot.jar (2)利用dockerfile将Hot.jar构建成镜像 (3)构建 Swarm 集群 (4)在 Swarm 集群中使用 c ...
- NIOSII IDE在WIN7下 couldn't allocate heap
首先,所有的文件夹都不能有空格和中文 其次,出现这些SB错误 make -s all includes 3 [main] ? (3732) c:\altera\91\quartus\bin\cygwi ...
- 前端的MySQL基础
前端MySQL 一.引言 MySQL是一个关系型数据库管理系统,在Web应用方面,MySQL是最好的应用之一.其主要的他点是体积小.速度块.总体成本低.源码开放 二.MySQL的构成 在我们开始学习M ...
- [PTA]7-3 逆序的三位数 (10分)
要求: 程序每次读入一个正3位数,然后输出按位逆序的数字.注意:当输入的数字含有结尾的0时,输出不应带有前导的0.比如输入700,输出应该是7. 正确思路: 拆分字符串后拼接成整数 1 #includ ...
- ltp日志
grep "fail" -i /var/log/messages |wc -lgrep "fail" -i /var/log/messagesgrep &quo ...
- 查看当前目录下文件个数: $find ./ | wc -l
2.1. 创建和删除 创建:mkdir 删除:rm 删除非空目录:rm -rf file目录 删除日志 rm *log (等价: $find ./ -name "*log" -ex ...
- 攻防世界(五)Web_php_include
攻防世界系列:Web_php_include 方法一:大小写绕过 strstr()函数对php我协议进行了过滤,但我们可以尝试大小写绕过 抓包POST传值让其执行我们输入的命令 ?page=Php:/ ...