卢卡斯定理(模数较小,且是质数)

式子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

卢卡斯定理&&中国剩余定理的更多相关文章

  1. 【bzoj3782】上学路线 dp+容斥原理+Lucas定理+中国剩余定理

    题目描述 小C所在的城市的道路构成了一个方形网格,它的西南角为(0,0),东北角为(N,M).小C家住在西南角,学校在东北角.现在有T个路口进行施工,小C不能通过这些路口.小C喜欢走最短的路径到达目的 ...

  2. 【题解】P2480 [SDOI2010]古代猪文 - 卢卡斯定理 - 中国剩余定理

    P2480 [SDOI2010]古代猪文 声明:本博客所有题解都参照了网络资料或其他博客,仅为博主想加深理解而写,如有疑问欢迎与博主讨论✧。٩(ˊᗜˋ)و✧*。 题目描述 猪王国的文明源远流长,博大精 ...

  3. 【bzoj1951】[Sdoi2010]古代猪文 费马小定理+Lucas定理+中国剩余定理

    题目描述 求  $g^{\sum\limits_{k|n}C_{n}^{\frac nk}}\mod 999911659$ 输入 有且仅有一行:两个数N.G,用一个空格分开. 输出 有且仅有一行:一个 ...

  4. Ceizenpok’s formula Gym - 100633J 扩展Lucas定理 + 中国剩余定理

    http://codeforces.com/gym/100633/problem/J 其实这个解法不难学的,不需要太多的数学.但是证明的话,我可能给不了严格的证明.可以看看这篇文章 http://ww ...

  5. hdu 5446 Unknown Treasure Lucas定理+中国剩余定理

    Unknown Treasure Time Limit: 1500/1000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Other ...

  6. Codeforces Round #460 (Div. 2).E 费马小定理+中国剩余定理

    E. Congruence Equation time limit per test 3 seconds memory limit per test 256 megabytes input stand ...

  7. BZOJ 3782 上学路线 ——动态规划 Lucas定理 中国剩余定理

    我们枚举第一个经过的坏点,然后DP即可. 状态转移方程不是难点,难点在于组合数的处理. 将狼踩尽的博客中有很详细的证明过程,但是我只记住了结论 $n=a_1 * p^k+a_2*p^k-1...$ $ ...

  8. 洛谷P2480 [SDOI2010]古代猪文(费马小定理,卢卡斯定理,中国剩余定理,线性筛)

    洛谷题目传送门 蒟蒻惊叹于一道小小的数论题竟能涉及这么多知识点!不过,掌握了这些知识点,拿下这道题也并非难事. 题意一行就能写下来: 给定\(N,G\),求\(G^{\sum \limits _{d| ...

  9. 《孙子算经》之"物不知数"题:中国剩余定理

    1.<孙子算经>之"物不知数"题 今有物不知其数,三三数之剩二,五五数之剩七,七七数之剩二,问物几何? 2.中国剩余定理 定义: 设 a,b,m 都是整数.  如果 m ...

随机推荐

  1. .Net 中两分钟集成敏感词组件

    现如今大部分服务都会有用户输入,为了服务的正常运行,很多时候不得不针对输入进行敏感词的检测.替换.如果人工做这样的工作,不仅效率低,成本也高.所以,先让代码去处理输入,成为了经济方便的途径.水弟在这里 ...

  2. Scrum Meeting 3

    Basic Info where:三号教学楼 when:2020/4/27 target: 简要汇报一下已完成任务,下一步计划与遇到的问题 Progress Team Member Position ...

  3. [面向对象之继承应用(在子类派生重用父类功能(super),继承实现原理(继承顺序、菱形问题、继承原理、Mixins机制),组合]

    [面向对象之继承应用(在子类派生重用父类功能(super),继承实现原理(继承顺序.菱形问题.继承原理.Mixins机制),组合] 继承应用 类与类之间的继承指的是什么'是'什么的关系(比如人类,猪类 ...

  4. [bug] IDEA中解决程序包javax.servlet不存在

    参考 https://blog.csdn.net/qq_41283865/article/details/81865806

  5. ruby基础(二)

    ruby语法基础 1.方法 方法时对象定义的与该对象相关的操作.在Ruby中,对象的所有的操作都被封装成 方法. 语法糖:语法糖是一种为了照顾一般人的习惯而产生的特殊语法. ruby中一切数据都是对象 ...

  6. grub救援模式

    http://www.jinbuguo.com/linux/grub.cfg.html

  7. Zabbix 自定义report

    #!/bin/bash . /etc/profile logdir='/home/admin/zabbix/zabbix_log' mysql_host='localhost' mysql_user= ...

  8. 007.Ansible变量Fact,魔法变量和lookup生成变量

    一 fact变量 1.1  fact简介 ansible有一个模块叫setup,用于获取远程主机的相关信息,并可以将这些信息作为变量在playbook里进行调用.而setup模块获取这些信息的方法就是 ...

  9. Linux_配置主DNS服务(基础)

    [RHEL8]-DNSserver:[Centos7.4]-DNSclient !!!测试环境我们首关闭防火墙和selinux(DNSserver和DNSclient都需要) [root@localh ...

  10. HDFS 高可用(HA)环境搭建

    步骤一:修改公共属性配置 core-site.xml 文件 [root@node-01 ~]# cd /root/apps/hadoop-3.2.1/etc/hadoop [root@node-01 ...