数论&组合数学常见结论及例题

数论&组合数学常见结论及例题
风铃夜行数论&组合数学常见结论及例题
球盒模型(八种)
参考链接。给定
- 球同,盒不同、不能空
隔板法:
个小球即一共 个空,分成 堆即 个隔板,答案为 。
- 球同,盒不同、能空
隔板法:多出
个虚空球,答案为 。
- 球同,盒同、能空
的 项的系数。动态规划,答案为 $$dp[i][j]=
\left{\right.$$
1 | int dp[15][15]; |
- 球同,盒同、不能空
的 项的系数。动态规划,答案为 $$dp[n][m]=
\left{\right.$$
- 球不同,盒同、不能空
第二类斯特林数
,答案为 $$dp[n][m]=
\left{\right.$$
- 球不同,盒同、能空
第二类斯特林数之和
,答案为 。
- 球不同,盒不同、不能空
第二类斯特林数乘上
的阶乘 ,答案为 。
- 球不同,盒不同、能空
答案为
。
麦乐鸡定理
给定两个互质的数
抽屉原理(鸽巢原理)
将
哥德巴赫猜想
任何一个大于
除法、取模运算的本质
有公式:
与、或、异或
运算 | 运算符、数学符号表示 | 解释 |
---|---|---|
与 | & 、and |
同1出1 |
或 | | 、or |
有1出1 |
异或 | ^ 、xor |
不同出1 |
一些结论:
对于给定的
和序列 ,有: 。
原理是意味着取交集, 意味着取子集。来源 - 牛客小白月赛49C
调和级数近似公式
1 | log(n) + 0.5772156649 + 1.0 / (2 * n) |
欧拉函数常见性质
中与 互质的数之和为 。 - 若
互质,则 。实际上,所有满足这一条件的函数统称为积性函数。 - 若
是积性函数,且有 ,那么 。 - 若
为质数,且满足 , ,那么 。 ,那么 。
。 如
,则 ,那么 。 (欧拉反演)。
组合数学常见性质
- $k C^k_n=nC^{k-1}_{n-1}$ ;
- $C_k^nC_m^k=C_m^nC_{m-n}^{m-k}$ ;
; ; 。 - 二项式反演:$\left{
\right. $ ; ; ; ; ; - 拉格朗日恒等式:
。
lucas定理
Lucas 定理内容如下:对于质数
观察上述表达式,可知
时间复杂度为
1 | long long Lucas(long long n, long lm, long long p) { |
1 | def Lucas(n, m, p): |
范德蒙德卷积公式
在数量为
变体:
; 。
推论 1 及证明
推论 2 及证明
推论 3 及证明
推论 4 及证明
其中
在一张网格图中,从
换个视角,我们将
卡特兰数
是一类奇特的组合数,前几项为
- 【括号匹配问题】
个左括号和 个右括号组成的合法括号序列的数量,为 。 - 【进出栈问题】
经过一个栈,形成的合法出栈序列的数量,为 。 - 【二叉树生成问题】
个节点构成的不同二叉树的数量,为 。 - 【路径数量问题】在平面直角坐标系上,每一步只能向上或向右走,从
走到 ,并且除两个端点外不接触直线 的路线数量,为 。
计算公式:
狄利克雷卷积
斐波那契数列
通项公式:
直接结论:
- 卡西尼性质:
; ; (由上一条写两遍相减得到); - 若存在序列
则 ; - 齐肯多夫定理:任何正整数都可以表示成若干个不连续的斐波那契数(
开始)可以用贪心实现。
求和公式结论:
- 奇数项求和:
; - 偶数项求和:
; - 平方和:
; ; ; 。
数论结论:
; ; - 当
为 型素数时, ; - 当
为 型素数时, ; 的周期 ( 时取到等号); - 既是斐波那契数又是平方数的有且仅有
。
杂
负数取模得到的是负数,如果要用
判断的话请取绝对值; 辗转相除法原式为
,推广到 项为 , - 该推论在“四则运算后
”这类题中有特殊意义,如求解 时See;
- 该推论在“四则运算后
以下式子成立:
。求解上式满足条件的 的数量即为求比 小且与其互质的数的个数,即用欧拉函数求解 。 已知序列
,定义集合 ,现在要求解 ,即为求解 ,换句话说,即为求解后缀 。 连续四个数互质的情况如下,当
为奇数时, 一定互质;而当 为偶数时,$\left{ \right.$ See; 由
可以推广得到 ,由此可以得到一个 的答案周期See; 对于长度为
的数列 ,将其任意均分为两个长度为 的数列 ,随后对 非递减排序、对 非递增排序,定义 ,那么答案为 数列前 大的数之和减去前 小的数之和See。 令 $\left{
\right.$ ,如果该式子有解,那么存在前提条件 $\left{ \right. a \dfrac{X-Y}{2}$ See。 然而,上方方程并不总是有解的,只有当变量增加到三个时,才一定有解,即:在保证上方前提条件成立的情况下,求解 $\left{
\right. {\dfrac{X-Y}{2},\dfrac{X-Y}{2},Y}$ See。 已知序列
是由序列 、序列 、……、序列 合并而成,且合并过程中各序列内元素相对顺序不变,记 是 序列的最大前缀和,则 See 。 ,对于两个数字 和 ,如果将 变为 ,同时将 变为 ,那么在本质上即将 二进制模式下的全部 移动到了 的对应的位置上 See 。 一个正整数
异或、加上另一个正整数 后奇偶性不发生变化: See 。
常见例题
题意:将
考察哥德巴赫猜想,记全部数字之和为
- 为
质数时,只需要分入同一组; - 当
为偶数时,由猜想可知一定能分成两个质数,可以证明其中较小的那个一定小于 ,暴力枚举分组; - 当
为质数时,特殊判断出答案; - 其余情况一定能被分成三组,其中
单独成组, 后成为偶数,重复讨论二的过程即可。
题意:给定一个长度为
最少删除一个元素——如果原数组存在奇数,则直接删除这个奇数即可;反之,我们发现,对数列同除以一个数不影响计算,故我们只需要找到最大的满足
题意:设当前有一个数字为
最少减去
题意:给定一个整数
结论1:__builtin_popcountll(n) <= k && k <= n
,显然。
结论2:
1 | signed main() { |
题意:
1 | Z clac(int n, int k, int m) { |
C(m + n - 1, n - 1)
;C(m - k + n - 1, n - 1)
;C(n, 1)
;C(m + n - 1, n - 1) - C(n, 1) * C(m - k + n - 1, n - 1)
即是答案;但是,这样的操作会导致重复的部分,所以这里要使用容斥原理将重复部分去除(关于为什么会重复,试比较概率论中的加法公式)。