zoukankan      html  css  js  c++  java
  • [学习笔记] 组合数学

    常见结论

    结论 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) 的情况成立。然后有:

    [sum_{i=0/j}^{n} ext C(i,j)=sum_{i=0/j}^{n-1} ext C(i,j)+ ext C(n,j) ]

    [= ext C(n,j+1)+ ext C(n,j)= ext C(n+1,j+1) ]

    结论 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) 的排列数。那么有:

    [f(n)=sum_{i=0}^n inom{n}{i} cdot D(i) ]

    [D(n)=sum_{i=0}^n (-1)^{n-i} cdot inom{n}{i}cdot i! ]

    [=sum_{i=0}^n (-1)^{n-i} cdot frac{n!}{(n-i)!} ]

    [=n!sum_{i=0}^nfrac{(-1)^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})

    例 5. ( ext{[HNOI 2011] })卡农

    当所选集合有顺序时更方便我们考虑问题(相当于在 (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)。在这种情况下,我们就只用判断答案的奇偶性。

  • 相关阅读:
    2020多校补题集
    2020牛客多校第10场C Decrement on the Tree树上路径删除
    主席树模板(查询区间第K大的元素)
    第一次小赛
    计算几何小知识整理
    咸鱼暂时退圈
    mysql 格式化时间
    mysql 中国省份城市数据库表
    CF786B Legacy (线段树优化建图模板)
    树上两点期望距离
  • 原文地址:https://www.cnblogs.com/AWhiteWall/p/12564854.html
Copyright © 2011-2022 走看看