1. lucas定理
 lucas定理是用来求 c(n,m) mod p,p为素数的值。
 C(n, m) % p = C(n / p, m / p) * C(n % p, m % p) % p
 也就是Lucas(n, m) % p = Lucas(n / p, m / p) * C(n % p, m % p) % p
 n = n % p, m = m = m % p
 C(n % p, m % p) % p = C(n, m) % p
 C(n, m)%p = n! / (m ! * (n - m )!) % p
 化除为乘
 n! / (m ! * (n - m )!) % p = n! / (n - m)! * m!的逆元 % p
2.逆元
 1).什么是逆元
 当求解公式(a / b) % m 时,因b可能会过大,会出现爆精度的情况,所以需变除法为乘法:
 设c是b的逆元,则有b * c ≡ 1(mod m);
 则(a / b) % m = (a / b) * 1 % m = (a / b) * b * c % m = a * c(mod m);
 2).逆元的求法
 ①费马小定理:如果p是一个质数,而整数a不是p的倍数,则有a ^ (p - 1) ≡ 1(mod p)
 所以a的逆元为a^(p - 2)
 ②扩展欧几里得

void gcd(int a,int b,int &d,int &x,int &y)
{if(!b)  { d = a, x = 1, y=0;else {  gcd(b, a % b, d, y, x); y -= x * (a / b);  }
}

3.模板

int fast_pow(int a, int n, int m)
{if(n == 0) return 1;long long ans = 1;int x = fast_pow(a, n / 2, m);ans = (long long)x * x % m;if(n % 2) ans = ans * a % m;return (int) ans;
}int C(int a, int b, int mod)
{if(a < b) return 0;if(a == b) return 1;if(b > a - b) b = a - b;long long ca = 1, cb = 1;for(int i = 0; i < b; i++){ca = (ca * (a - i)) % mod;cb = (cb * (b - i)) % mod;}ca = (ca * fast_pow(cb, mod - 2, mod)) % mod;return (int)ca;
}int lucas(int n, int m, int mod)
{long long ans = 1;while(n && m && ans){ans = (ans * C(n % mod, m % mod, mod)) % mod;n /= mod;m /= mod;}return (int)ans;
}

lucas定理(学习笔记)相关推荐

  1. lucas定理 学习笔记

    lucas定理 学习笔记 文章目录 lucas定理 学习笔记 介绍 combination 题目描述 输入格式 输出格式 样例 输入样例1 输出样例2 分析 code 扩展lucas 介绍 lucas ...

  2. Lucas 定理学习笔记

    Lucas 定理 Lucas 定理用于求解大组合数取模的问题,其中模数必须为素数.正常的组合数运算可以通过递推公式求解(详见排列组合),但当问题规模很大,而模数是一个不大的质数的时候,就不能简单地通过 ...

  3. 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 ...

  4. [MIT]微积分重点 第十七课 六函数、六法则和六定理 学习笔记

    1.六函数 积分 六函数 导数 xn+1/(n+1)x^{n+1}/(n+1)xn+1/(n+1) xnx^nxn nxn−1nx^{n-1}nxn−1 −cos⁡x-\cos x−cosx sin⁡ ...

  5. 二部图Hall定理学习笔记

    离散数学PPT: Hall定理 定理(Hall定理) 设二部图G=<V1,V2,E>中,|V1|≤|V2|. G中存在从V1到V2的完备匹配当且仅当V1中任意k 个顶点至少与V2中的k个顶 ...

  6. Burnside引理和Polya定理学习笔记

    前言 求·······的方案数 循环同构算一种 一脸懵逼 (于是我觉得系统的学一遍Burnside引理和Polya定理) 正文 置换 置换的概念 对于一个排列aia_iai​ 我们想成iii输进去会出 ...

  7. 基尔霍夫矩阵矩阵树定理学习笔记

    背景: 好多东西没学. 勇士被快船惊天大逆转!!! 快船NBNBNB. 紧接着下午打球水杯被搞烂了......... 正题: Part1Part1Part1行列式: 对于一个n∗nn*nn∗n的矩阵A ...

  8. 傅里叶变换与香农采样定理学习笔记

    1. 傅里叶变换入门 无公式,最直观了解什么是傅里叶变换? 傅里叶分析之掐死教程(完整版)更新于2014.06.06 数学公式基础推导出傅里叶变换与反变换 纯干货数学推导_傅里叶级数与傅里叶变换_Pa ...

  9. 中国剩余定理(CRT)孙子定理学习笔记

    在<孙子算经>中有这样一个问题:"今有物不知其数,三三数之剩二(除以3余2),五五数之剩三(除以5余3),七七数之剩二(除以7余2),问物几何?"这个问题称为" ...

  10. 洛谷4455 [CQOI2018]社交网络 (有向图矩阵树定理)(学习笔记)

    sro_ptx_orz qwq算是一个套路的记录 对于一个有向图来说 如果你要求一个外向生成树的话,那么如果存在一个\(u\rightarrow v\)的边 那么\(a[u][v]--,a[v][v] ...

最新文章

  1. 083 HBase的完全分布式的搭建与部署,以及多master
  2. 技术图文:浅析 C# Dictionary实现原理
  3. 微信朋友圈技术之道:三个人的后台团队与每日十亿的发布量
  4. 技术领导力实战笔记一
  5. matlab实现BCC异或,C#编程之C# BCC异或校验法
  6. .NET 6 Preview 6 正式发布: 关注网络开发
  7. QuickPart应用系列
  8. Android访问数据库(SQL Server 和 MySQL)
  9. 风一样的坑爹哥rust1_醒醒吧,烂大街的“北欧风”根本不实用!
  10. 服务器访问RabbitMQ出现 User can only log in via localhost
  11. 数据科学常用Python库介绍--Numpy、Scipy、Pandas、Matplotlib、Plotly、SciKit-Learn等
  12. JWT学习(二):Json Web Token JWT的Java使用 (JJWT)
  13. 联想电脑如何关闭/开启windows自动更新
  14. ResNet 论文阅读笔记
  15. 〖金融帝国实验室〗(Capitalism Lab)深度研究文章——《浅析CapLab中的通货膨胀与城市GDP》(上)(作者:jiuliumuliao) ​​​​
  16. 一则软件需求有关的漫画
  17. Flutter 中由 BuildContext 引发的血案
  18. springboot+景区停车管理系统 毕业设计-附源码221603
  19. 利用云服务器和Python架设TCP Server控制ESP8266单片机
  20. 计算机网络社团章程,社团日常规章制度

热门文章

  1. Windows Embedded Compact 7可定制化互联网电视
  2. Encountered a sharing violation while accessing
  3. 计算机学科专业考研总分,2021计算机专业考研备考常识与考试科目分值
  4. JavaScript,jQuery,Tomcat,Http,Servlet
  5. 少壮不努力,老大写程序(kobewry) 经典话语啊
  6. 神经网络参数量和计算量,神经网络是参数模型吗
  7. Jsoup如何获得某元素后面的所有兄弟元素
  8. html怎样使动画循环,html – 如何在css动画循环之间添加延迟
  9. Spark RDD 论文详解(三)Spark 编程接口
  10. 计算机网络课程设计——中小型网络工程设计