常见结论
结论 1:当 (n & m=m) 时,( ext C(n,m)) 是奇数。
证明戳这。
结论 2:(sum_{i=0}^n ext{C}^2(n,i)= ext{C}(2n,n))。
两个盒子各有 (n) 个球,共取 (n) 个球的方案数是 ( ext{C}(2n,n)),这也相当于一个盒子取 (i) 个,另一个取 (n-i) 个。所以实际上这可以拓展到两个盒子有 (n,m) 个球的情况。
结论 3:( ext{C}(n,m)= ext{C}(n-1,m-1)+ ext{C}(n-1,m))。
第 (n) 个元素取或不取。
结论 4:(sum_{i=0/j}^{n} ext C(i,j)= ext C(n+1,j+1))。
证明用归纳法,可以证明 (n=0) 的情况成立。然后有:
结论 5:(sum_{i=0}^n i^2 ext{C}(n,i)=2^{n-2}n(n+1))。
结论 6:
[D(n)=n!sum_{i=0}^nfrac{(-1)^i}{i!} ][=ncdot D(n-1)+(-1)^n ]
这个可以用二项式反演证!令 (f(i)) 为长度为 (i) 的排列数。那么有:
后面的递推式可以通过这个式子化出来。
结论 7:
[sum_{n+m=N}inom{n}{s}cdot inom{m}{t}=inom{N+1}{s+t+1} ]
在 (N+1) 个球中取出 (s+t+1) 个球。相当于枚举第 (s+1) 个球的位置。
例题
例 1.
将长度为 (n) 的序列分成 (m) 段的方案数,允许段为空。或者,你会发现这和将 (n) 个相同的球放进 (m) 个不同的抽屉是等价的。
终于找到一个能说服我的 理解 了!
现在突然有了一种船新的理解!在 (n+m-1) 中选择 (m-1) 个分隔符,显然分出的序列可以为空。
例 2.
( ext{HDU - 5794 A Simple Chess})
可达点满足 ((x+y)mod 3=2) 可以归纳证明。每次 (x,y) 坐标和都会增加 (3)。
例 3.
( ext{arc110D - Binomial Coefficient is Fun})
如果确定了 (b),答案就是非常好求的。所以一种思路就是先用组合数算 (b),再来算答案。在 (n+m) 中选择 (n) 个分隔符,将整个序列分成 (n+1) 段。显然我们不要求分成的段有顺序,于是不妨令前 (i,iin[1,n]) 段对应 (a_i) 选择的 (b_i)。最后一段相当于满足 (sum b_ile m) 的限制。答案就是 ( ext{C}(n+m,n+sum a_i))。只要选出 (n+sum a_i) 个数,因为 (a_i) 是固定的,方案也就固定了。
( ext{Upd:}) 可以利用 结论 7
。推广一下可以得到 (n) 个组合数相乘的式子:(inom{sum b_i+n-1}{sum a_i+n-1})。接下来只用算 (sum_{sum b_ile m} inom{sum b_i+n-1}{sum a_i+n-1})。利用 结论 4
可知答案为 (inom{m+n}{sum a_i+n})。
例 4.
( ext{abc171F - Strivore})
如果随便填会有重复的情况。考虑枚举原串的第一个字符的位置 (i),规定如果有相同字符,选择最后面的字符为原串字符。前 (i-1) 个位置为 (26^{i-1}),后面取 (k+m-i) 个位置放 (m-1) 个字符,为 (inom{k+m-i}{m-1})。剩余位置不能和左边最近的原串字符相同,但如果中间隔了另一个不同的原串字符就不影响,为 (25^{k-i+1})。
当所选集合有顺序时更方便我们考虑问题(相当于在 (m) 个位置放集合),不妨先不管同种音乐的限制,最后将答案除以 (m!) 即可。
考虑题目的三个限制:
- 所选集合不为空。
- 两两集合不同。
- 对于 (iin [1,n]),(i) 在所选集合中出现次数和为偶数。
对于第一个限制,我们就只能选 (2^n-1) 种集合。设 (dp_i) 为在前 (i) 个位置放集合的合法方案数。有个很神奇的转化 —— 确定前 (i-1) 个集合,相当于确定第 (i) 个集合中 (jin [1,n]) 出现次数的奇偶性。而 (i) 在某个集合只能出现 (0/1) 次,所以相当于确定了第 (i) 个集合。方案数为 ( ext{A}(2^n-1,i-1))。
不过可能出现第 (i) 个集合为空集的情况。这种情况的方案数为 (dp_{i-1})。
还要排除第 (i) 个集合与前面的某 (j) 集合相同的情况。那么所有数在 (i,j) 集合的出现次数必定为偶数,所以剩余 (i-2) 个集合方案数为 (dp_{i-2})。不过我们需要在前 (i-1) 个位置中给 (j) 找一个位置,有 (i-1) 的系数。(i,j) 集合的取值方案就是 (2^n-1-(i-2))。
例 6.
求 (n) 个数里面取 (i) 个数异或的所有组合的和。(n le 1000, iin[1,n])。
对每一位进行计算。设某一位有 (k) 个 (0),对于每个 (i),枚举从 (k) 个 (0) 中选 (t) 个数,从 (n-k) 个 (1) 中选 (i-t) 个数。方案数为 (inom{k}{t}cdot inom{n-k}{i-t}),这些方案是否有贡献和 (n-k) 的奇偶性有关。
例 7.
( ext{agc043B - 123 Triangle})
手玩一下发现第二行就没有 (3) 了,所以将整体 (-1),这不影响相邻两项的差。
还有个性质:如果序列中有 (1),答案不可能为 (2)。因为 (1) 和 (0,2) 都会变成 (1)。在这种情况下,我们就只用判断答案的奇偶性。