∑ i = 0 m ( k + i k ) = ( k + 1 k + 1 ) + ( k + 1 k ) + ∑ i = 2 m ( k + i k ) = ( k + 2 k + 1 ) + ( k + 2 k ) + ∑ i = 3 m ( k + i k ) = … = ( k + m + 1 k + 1 ) \begin{aligned} \sum \limits_{i = 0}^{m} \binom{k + i}{k} &= \binom{k + 1}{k + 1} + \binom{k + 1}{k}+\sum\limits_{i = 2}^{m}\binom{k + i}{k} \\ &= \binom{k + 2}{k + 1} + \binom{k+2}{k} + \sum\limits_{i = 3}^{m}\binom{k + i}{k} \\ &= \dots \\ &= \binom{k + m + 1}{k + 1}\\ \end{aligned} i=0∑m(kk+i)=(k+1k+1)+(kk+1)+i=2∑m(kk+i)=(k+1k+2)+(kk+2)+i=3∑m(kk+i)=…=(k+1k+m+1)
结论2 对于斐波拉契数列 F n ( F 0 = 0 , F 1 = 1 , F n = F n − 1 + F n − 2 ) F_n(F_0 = 0,F_1=1, F_n = F_{n - 1} + F_{n - 2}) Fn(F0=0,F1=1,Fn=Fn−1+Fn−2), 有:
F n = ∑ k = 0 n − 1 ( n − 1 − k k ) F_n = \sum \limits_{k = 0}^{n - 1}\binom{n - 1 - k}{k} Fn=k=0∑n−1(kn−1−k)
证明 易知 F 0 = 0 , F 1 = 1 F_0 = 0,F_1 = 1 F0=0,F1=1,对于 n ≥ 2 n\ge 2 n≥2,考虑归纳证明
F n = F n − 1 + F n − 2 = ( n − 2 0 ) + ∑ k = 1 n − 2 ( n − 2 − k k ) + ∑ k = 1 n − 2 ( n − 2 − k k − 1 ) = ( n − 1 0 ) + ∑ k = 1 n − 2 ( n − 1 − k k ) + ( 0 n − 1 ) = ∑ k = 0 n − 1 ( n − 1 − k k ) \begin{aligned} F_{n} &= F_{n - 1} + F_{n - 2} \\ &= \binom{n - 2}{0} + \sum \limits_{k = 1}^{n - 2}\binom{n - 2 - k}{k} + \sum \limits_{k = 1}^{n - 2}\binom{n - 2 - k}{k - 1} \\ &= \binom{n - 1}{0} + \sum \limits_{k = 1}^{n - 2}\binom{n - 1 - k}{k} + \binom{0}{n - 1} \\ &= \sum \limits_{k = 0}^{n - 1}\binom{n - 1 - k}{k} \\ \end{aligned} Fn=Fn−1+Fn−2=(0n−2)+k=1∑n−2(kn−2−k)+k=1∑n−2(k−1n−2−k)=(0n−1)+k=1∑n−2(kn−1−k)+(n−10)=k=0∑n−1(kn−1−k)
范德蒙德卷积 ∑ i = 0 k ( n i ) ( m k − i ) = ( n + m k ) \sum \limits_{i = 0}^{k}\binom{n}{i}\binom{m}{k - i} = \binom{n+m}{k} i=0∑k(in)(k−im)=(kn+m)
定义 r ( m , n ) r(m, n) r(m,n) 表示满足以下条件的完全图的最少点数 n n n:
由定义可知 r ( n , m ) = r ( m , n ) , r ( 1 , n ) = 1 r(n, m) = r(m,n),r(1,n)=1 r(n,m)=r(m,n),r(1,n)=1。
利用鸽巢原理容易证明 r ( 3 , 3 ) ≤ 6 r(3,3)\le 6 r(3,3)≤6, r ( 3 , 3 ) > 5 r(3,3) > 5 r(3,3)>5 的反例如下图,实际上任取一个五元环即可。
可以证明 r ( 2 , n ) = n r(2,n)=n r(2,n)=n:
结论 r ( n , m ) ≤ r ( n − 1 , m ) + r ( n , m − 1 ) r(n,m) \le r(n-1,m)+r(n,m-1) r(n,m)≤r(n−1,m)+r(n,m−1)
证明 设 p = r ( n − 1 , m ) + r ( n , m − 1 ) p = r(n - 1, m) + r(n,m - 1) p=r(n−1,m)+r(n,m−1),任取 p p p 个点中的一个点 x x x,设 R x R_x Rx 表示与 x x x 相连的边均为红色的点集, B x B_x Bx 表示与 x x x 相连的边均为蓝色的点集,易知 ∣ R x ∣ + ∣ B x ∣ = p − 1 |R_x| + |B_x| = p - 1 ∣Rx∣+∣Bx∣=p−1。
由鸽巢原理,一定存在以下两个条件之一成立:
∣ R x ∣ ≥ r ( n − 1 , m ) |R_x| \ge r(n - 1,m) ∣Rx∣≥r(n−1,m)
∣ B x ∣ ≥ r ( n , m − 1 ) |B_x| \ge r(n, m - 1) ∣Bx∣≥r(n,m−1)
对于条件 1,在 R x R_x Rx 中任取 r ( n − 1 , m ) r(n - 1, m) r(n−1,m) 个点,由 r ( n − 1 , m ) r(n - 1, m) r(n−1,m) 的定义至少存在一个边全为红色的 K n − 1 K_{n - 1} Kn−1 或边全为蓝色的 K m K_{m} Km。若存在一个边全为蓝色的 K m K_m Km,证明已经完成;若存在一个边全为红色的 K n − 1 K_{n - 1} Kn−1,将 x x x 加入即可得到边全为红色的 K n K_n Kn。
对于条件2,同理可证。
证明 沿用 结论 中证明的定义,此时 ∣ R x ∣ + ∣ B x ∣ = p − 2 |R_x| + |B_x| = p - 2 ∣Rx∣+∣Bx∣=p−2。
由鸽巢定理,一定存在以下三个条件之一成立:
∣ R x ∣ ≥ r ( n − 1 , m ) |R_x| \ge r(n - 1,m) ∣Rx∣≥r(n−1,m)
∣ B x ∣ ≥ r ( n , m − 1 ) |B_x| \ge r(n, m - 1) ∣Bx∣≥r(n,m−1)
∣ R x ∣ = r ( n − 1 , m ) − 1 |R_x| = r(n - 1,m) - 1 ∣Rx∣=r(n−1,m)−1 且 ∣ B x ∣ = r ( n , m − 1 ) − 1 |B_x| = r(n, m - 1) - 1 ∣Bx∣=r(n,m−1)−1
前两个条件已经被证明,该推论可能不成立当且仅当对于所有点都满足条件 3,然而若所有点都满足条件 3 时由握手定理,图中的红边总数为 ( r ( n − 1 , m ) − 1 ) ( p − 1 ) 2 \frac{(r(n - 1,m) - 1)(p - 1)}{2} 2(r(n−1,m)−1)(p−1) ,由奇偶性该式一定不为整数,故至少存在一个点不满足条件 3。
部分 Ramsey 数的证明:
结论2 r ( n , m ) > ( n − 1 ) ( m − 1 ) r(n,m) > (n - 1)(m - 1) r(n,m)>(n−1)(m−1)
证明 构造一个 n − 1 n - 1 n−1 行 m − 1 m - 1 m−1 列的点阵,同行的点之间连红边,否则连蓝边,显然图中不存在边全为红色的 K n − 1 K_{n - 1} Kn−1 和边全为蓝色的 K m − 1 K_{m - 1} Km−1。
证明 根据定义讨论即可。
证明 设 X = r ( 3 , … , 3 ) ( k 个 3 ) X = r(3,\dots,3)(k个3) X=r(3,…,3)(k个3),将 { 1 , 2 , … , X − 1 } \{1,2,\dots,X-1\} {1,2,…,X−1} 划分成 k k k 个集合 R 1 , R 2 , … , R k R_1,R_2,\dots,R_k R1,R2,…,Rk, 对于任意结点编号 i , j ∈ { 1 , 2 , … , X } i,j\in\{1,2,\dots,X\} i,j∈{1,2,…,X},若 ∣ i − j ∣ ∈ R l |i - j|\in R_l ∣i−j∣∈Rl,则将 ( i , j ) (i,j) (i,j) 染为颜色 l l l,由 X X X 的定义图中至少存在一个边同色的 K 3 K_3 K3,设编号为 i < j < k i
i<j<k ,则有 ∣ j − i ∣ + ∣ k − j ∣ = ∣ k − i ∣ |j-i|+|k-j|=|k-i| ∣j−i∣+∣k−j∣=∣k−i∣,与 Sum-Free 划分 的定义矛盾。
证明
∑ i = k n ( − 1 ) i − k ( i k ) g i = ∑ i = k n ( − 1 ) i − k ( i k ) ∑ j = i n ( j i ) f j = ∑ j = k n f j ∑ i = k j ( − 1 ) i − k ( i k ) ( j i ) = ∑ j = k n f j ∑ i = k j ( − 1 ) i − k ( j k ) ( j − k i − k ) = ∑ j = k n ( j k ) f j ∑ i = 0 j − k ( − 1 ) i ( j − k i ) = ∑ j = k n ( j k ) f j ( 1 − 1 ) j − k = ∑ j = k n ( j k ) f j [ j = k ] = f k \begin{aligned}\sum \limits_{i = k}^{n} (-1)^{i - k} \binom{i}{k}g_i &= \sum \limits_{i = k}^{n}(-1)^{i - k} \binom{i}{k} \sum \limits_{j = i}^{n} \binom{j}{i} f_j \\&= \sum \limits_{j = k}^{n} f_j\sum \limits_{i = k}^{j} (-1)^{i - k} \binom{i}{k}\binom{j}{i}\\&= \sum \limits_{j = k}^{n} f_j\sum \limits_{i = k}^{j} (-1)^{i - k} \binom{j}{k}\binom{j - k}{i - k}\\&= \sum \limits_{j = k}^{n} \binom{j}{k} f_j \sum \limits_{i = 0}^{j - k} (-1)^{i} \binom{j - k}{i}\\&= \sum \limits_{j = k}^{n} \binom{j}{k} f_j (1 - 1)^{j - k}\\&=\sum \limits_{j = k}^{n}\binom{j}{k}f_j[j = k] =f_k \end{aligned} i=k∑n(−1)i−k(ki)gi=i=k∑n(−1)i−k(ki)j=i∑n(ij)fj=j=k∑nfji=k∑j(−1)i−k(ki)(ij)=j=k∑nfji=k∑j(−1)i−k(kj)(i−kj−k)=j=k∑n(kj)fji=0∑j−k(−1)i(ij−k)=j=k∑n(kj)fj(1−1)j−k=j=k∑n(kj)fj[j=k]=fk
证明 相当于将 n + m n+m n+m 个不同的球放入 m m m 个相同的盒子中,每个球至少有一个球。可将放入每个球的过程分为选择一个有球/无球的盒子和放入两步,则需要选择一个有球盒子的球恰好有 n n n 个,第 i i i 个选择有球盒子的球选择的方案数为当前有球的盒子数, 可等价为数列中的第 i i i 个数。
记作 s ( n , k ) s(n,k) s(n,k) 或者 [ n k ] \begin{bmatrix}n\\k\end{bmatrix} [nk],表示将 n n n 个两两不同的元素,划分为 k k k 个互不区分的非空轮换的方案数。
易知 [ n 0 ] = [ n = 0 ] , [ n k ] = [ n − 1 k − 1 ] + ( n − 1 ) [ n − 1 k ] \begin{bmatrix}n\\0 \end{bmatrix} = [n = 0], \begin{bmatrix}n\\k\end{bmatrix} = \begin{bmatrix}n - 1\\k - 1\end{bmatrix} + (n - 1)\begin{bmatrix} n - 1 \\ k\end{bmatrix} [n0]=[n=0],[nk]=[n−1k−1]+(n−1)[n−1k]。
设生成函数 F n ( x ) = ∑ k = 0 n [ n k ] x k F_n(x) = \sum \limits_{k = 0}^{n} \begin{bmatrix}n\\k\end{bmatrix}x^k Fn(x)=k=0∑n[nk]xk,根据递推式不难写出
F n ( x ) = x F n − 1 ( x ) + ( n − 1 ) F n − 1 ( x ) = ( x + n − 1 ) F n − 1 ( x ) = ∏ i = 0 n − 1 ( x + i ) F_n(x)=xF_{n-1}(x)+(n-1)F_{n-1}(x)=(x+n-1)F_{n-1}(x)=\prod\limits_{i=0}^{n -1}(x+i) Fn(x)=xFn−1(x)+(n−1)Fn−1(x)=(x+n−1)Fn−1(x)=i=0∏n−1(x+i)
容易通过分治 NTT 求出。
证明 (1)已经在 第一类斯特林数 一节内容中用生成函数证明,考虑到:
( − x ) n ‾ = ( − 1 ) n x n ‾ = ∑ k = 0 n ( − 1 ) k [ n k ] x k (-x)^{\overline{n}} =(-1)^nx^{\underline{n}}= \sum \limits_{k = 0}^{n}(-1)^k\begin{bmatrix} n\\k\\\end{bmatrix}x^k (−x)n=(−1)nxn=k=0∑n(−1)k[nk]xk移项后即可得到(4)。
(3)容易根据 x k ‾ x^{\underline{k}} xk 和 x n x^n xn 的组合意义得到,利用类似的技巧,可以得到:
( − x ) n = ∑ k = 0 n { n k } ( − x ) k ‾ = ∑ k = 0 n ( − 1 ) k { n k } x k ‾ (-x)^n = \sum \limits_{k=0}^{n}\begin{Bmatrix} n\\k\\\end{Bmatrix}(-x)^{\underline{k}} = \sum \limits_{k=0}^{n}(-1)^k\begin{Bmatrix} n\\k\\\end{Bmatrix}x^{\overline{k}} (−x)n=k=0∑n{nk}(−x)k=k=0∑n(−1)k{nk}xk整理移项后即可得到(2),证毕。
令 f n f_n fn 表示将 n n n 进行分拆的方案数。
例如, 1 + 1 + 1 + 1 = 1 + 1 + 2 = 1 + 3 = 2 + 2 = 4 1 + 1 + 1 + 1 = 1 + 1 + 2 = 1 + 3 = 2 + 2 = 4 1+1+1+1=1+1+2=1+3=2+2=4 ,所以 f 4 = 5 f_4 = 5 f4=5 。
下面给出几种常见的计算 f i ( 1 ≤ i ≤ n ) f_i(1 \le i \le n) fi(1≤i≤n) 的方法。
设 S = ⌊ n ⌋ S = \lfloor \sqrt{n}\rfloor S=⌊n⌋。
对于 > S > S >S 的数,设 g i , j g_{i,j} gi,j 表示选了 i i i 个数总和为 i ( S + 1 ) + j i(S+1) + j i(S+1)+j 的方案数,转移有两种:
+1
: g i , j + = g i , j − i g_{i,j} += g_{i,j - i} gi,j+=gi,j−i。第一维只有 O ( n ) \mathcal O( \sqrt{n}) O(n) 级别,时间复杂度 O ( n n ) \mathcal O(n \sqrt{n}) O(nn)。
求出 > S >S >S 的数的 DP \text{DP} DP 数组后,对于 ≤ S \le S ≤S 的数,直接完全背包即可,总的时间复杂度 O ( n n ) \mathcal O(n \sqrt{n}) O(nn)。
s = sqrt(n);
g[0] = 1;
for (int i = 1; i <= s; ++i)
for (int j = 0, jm = n - i * (s + 1); j <= jm; ++j)
{
if (j >= i)
add(g[j], g[j - i]);
add(f[i * (s + 1) + j], g[j]);
}
f[0] = 1;
for (int i = 1; i <= s; ++i)
for (int j = i; j <= n; ++j)
add(f[j], f[j - i]);
证明 容易得到 ∀ 0 ≤ i < p , h ( i ) = 0 \forall 0 \le i < p,h(i)=0 ∀0≤i<p,h(i)=0 且 h ( p ) = 1 h(p) = 1 h(p)=1,可设 h ( n ) = c ∏ i = 0 p − 1 ( n − i ) h(n) = c\prod\limits_{i=0}^{p - 1}(n-i) h(n)=ci=0∏p−1(n−i)代入 h ( p ) = 1 h(p) = 1 h(p)=1,解得 c = 1 p ! c = \frac{1}{p!} c=p!1,即 h ( n ) = ( n p ) h(n) = \binom{n}{p} h(n)=(pn)。
0 | d d d | 2 d 2d 2d | … \dots … | n d nd nd | 0 | 0 | 0 |
---|---|---|---|---|---|---|---|
0 | d d d | d d d | … \dots … | d d d | − n d -nd −nd | 0 | 0 |
0 | d d d | 0 | … \dots … | 0 | − ( n + 1 ) d -(n+1)d −(n+1)d | n d nd nd | 0 |