rt.
其他模板
点个赞评个论喵。
一、裴蜀定理
方程 ax+by=c 有整数解意味着 gcd(a,b) 能整除 c。反之亦然。(a,b,c 均为正整数)
即,gcd(a,b)∣c。
二、拓展欧几里得的应用
解形如 ax+by=c 的二元一次不定方程。
先行求解 ax+by=gcd(a,b)。
利用递归思想。求解下层递归的 x2,y2,回代上层。
易得递归边界为 x2=1,y2=0。①
因为 x=y2,y=x2−ba⋅y2。②
故此可以求出方程 ax+by=gcd(a,b) 的一组解。
由裴蜀定理得 gcd(a,b)∣c。
即原方程的一组解为 x0=gcd(a,b)c⋅x,y0=gcd(a,b)c⋅y。
证明:
①
ax+by=gcd(a,b)
bx2+(amodb)y2=gcd(b,amodb)
⋯
cxk+dyk=gcd(c,d)=c
此为递归边界,显然 xk=1,yk=0。
②
注意到 amodb=a−⌊ba⌋⋅b。
代入递归方程可得 bx2+ay2−⌊ba⌋⋅b⋅y2=gcd(b,amodb)。
合并同类项:ay2+b(x2−⌊ba⌋⋅y2)=gcd(b,amodb)。
因为 gcd(a,b)=gcd(b,amodb),所以得出 x=y2,y=x2−⌊ba⌋⋅y2。
此法仅能求出一组解。
通解:
x′=x0+t⋅gcd(a,b)b,y′=y0−t⋅gcd(a,b)a。(t 为任意整数)
最小解:
在周期 [1,gcd(a,b)b] 或 [0,gcd(a,b)b−1]:
非负整数解 xmin=(x0modgcd(a,b)b+gcd(a,b)b)modgcd(a,b)b。
正整数解 xmin=(x0modgcd(a,b)b+gcd(a,b)b−1)modgcd(a,b)b+1。
求 ymin 时将 x0 替换成 y0,gcd(a,b)b 替换成 gcd(a,b)a 即可。
最大解:
xmax=ac−b⋅ymin,ymax=bc−a⋅xmin。
是否存在正整数解(x,y 均为正整数):ymax>0。
正整数解的个数:gcd(a,b)bxmax−xmin+1。
三、组合数学
1.加乘原理
加法原理:
对于一件事,有 n 类完成办法,令 ai 表示完成第 i 种办法的方案数,则总共完成办法为 i=1∑nai。
乘法原理:
对于一件事,有 n 个完成步骤,令 ai 表示完成第 i 个步骤的方案数,则总共完成办法为 i=1∏nai。
2.排列与组合
排列数的定义:
在 n 个不同的数中取出 m(m≤n) 个,按任意顺序排列。
排列方案的总数即为排列数,记作 Anm。
计算公式:
Anm=i=0∏m−1(n−i)=(n−m)!n!
全排列:
Ann=i=0∏n−1(n−i)=n!
这是排列数的一个特殊情况。
公式可以理解为第一个位置可以选 n 个,第二个可以选 n−1 个,以此类推,第 m 个可以选 n−m+1 个。
组合数的定义
在 n 个不同的数中取出 m(m≤n) 个,组成一个集合。
集合的总数即为组合数,记作 Cnm 或 (nm),下文普遍使用(nm)。
计算公式:
(nm)=m!Anm=m!(n−m)!n!
公式可以理解为,在 Anm 的基础上,(nm) 并不关心两个元素之间的顺序,所以除以 m 个元素的全排列 m! 即可。
特别地,对于 m>n 的情况,Anm=(nm)=0。
排列组合基础部分常用公式
(1)n 个相同元素,分成 k 组,每组至少一个,求方案数。
考虑将 k−1 块板子插入至 n−1 个空中,显然答案为 (n−1k−1)。
(2)n 个相同元素,分成 k 组,每组数量无限制,求方案数。
考虑先拿来 k 个元素,此时将(2)转化为(1),易得答案为 (n+k−1n)。
(3)n 个相同元素,分成 k 组,每组至少 ai 个,求方案数。
考虑拿来 ∑ai 个元素,每个分 ai 个,转化至(2),再使用(2)的公式可得答案为 (n−∑ain−∑ai+k−1)。
(4)在 n 个连续的整数中选 k 个,两两不相邻的选法有 (n−k+1k) 种。
有帮助,赞一个