组合数学、容斥原理

@@基础概念:容斥原理又称排容原理,在组合数学里,其说明若 A1...An 为有限的集合,则如下图,其中 |A| 表示 A 的基数(一个集合元素的个数)。例如在两个集合的情况时,我们可以将 |A| 和 |B| 相加,再减去其交集的基数,而得到其并集的基数。摘自维基百科

容斥原理通式

@@经典应用之二项式反演
不在此赘述,献上学习博客一篇
:求有多少个长度为n的排列a1,a2,...,an,满足对于所有的1 <= i <= n,使得ai != i
:我们称位置i是不变的当且仅当ai = i。首先我们知道,如果不考虑ai != i这个条件,问题是很简单的,长度为 n 的排列一共有 n!。并且这些排列是有恰好k(k=0,1,2,⋯,n)个位置是不变的排列组成,也就是,如果我们设fi恰好i个位置是不变的排列的个数,那么可以得到
image.png

那么,使用二项式反演可以得到
组合数学、容斥原理_第1张图片
image.png

例题-HDU1465


:有 n 个球排成一行,你有 k 种颜色,要求给每一个球染色,相邻两个球颜色不可以相同,并且每种颜色至少使用一次。
:和错排列问题相同,假设没有限制每种颜色至少使用一次,那么问题就很简单,答案就是k(k-1)^n-1。这些方案是由恰好使用了 i(i=0,1,2,⋯,k) 种颜色的方案组成的,那么设 fi 为恰好使用了 i 种颜色的方案数,可以得到

image.png

经过反演得到
image.png

例题-codeforces/gym/100548/F-color

思考:其实不仅仅是二项式反演,很多问题中最经常用到的方法就是把条件放宽,求出一个好计算的问题,之后加上这个条件得到方程,利用反演公式算出答案,思想很类似的一题是bzoj-3456城市规划。


@@经典应用之斯特林数
:第一类Stirling数是分正负的,其绝对值是n个元素的项目分作k个环排列。常用的表示方法有s(n,k)等。
换一个比较生活化的说法,就是有n个人分为k组,每组内再按照特定的顺序围圈的分组方法的数目。例如s(4,2) = 11:
{A,B},{C,D}
{A,C},{B,D}
{A,D},{B,C}
{A},{B,C,D}
{A},{B,D,C}
{B},{A,C,D}
{B},{A,D,C}
{C},{A,B,D}
{C},{A,D,B}
{D},{A,B,C}
{D},{A,C,B}
给定S(n,0)=1, S(1,1)=1,有S(n,k) = S(n-1,k-1) + (n-1)S(n-1,k)
递推关系的说明:考虑第n个物品,n可以单独构成一个非空循环排列,这样前n-1种物品构成k-1个非空循环排列,有 S(n-1,k-1)中方法;也可以前n-1种物品构成k个非空循环排列,而第n个物品插入第i个物品的左边,这有(n-1)S(n-1,k)种方法。

组合数学、容斥原理_第2张图片
image.png

:第二类Stirling数是n个元素的集合定义k个等价类的方法数目,常用的表示方法有S(n,k)等。
换个比较生活化分说法,就是n个人分为k组的分组方法的数目,例如有甲、乙、丙、丁四人,若所有人分为1组,只能所有人在同一组,因此S(4,1)=1,若所有人分为4组,只能每人在独立的一组,因此S(4,4)=1,若分为2组,若分成2组,可以是甲乙一组、丙丁一组,或甲丙一组、乙丁一组,或甲丁一组、乙丙一组,或其中三人同一组另一人独立一组,即是:
{A,B},{C,D}
{A,C},{B,D}
{A,D},{B,C}
{A},{B,C,D}
{B},{A,C,D}
{C},{A,B,D}
{D},{A,B,C}
因此S(4,2)=7
给定S(n,n)=S(n,1)=1,有S(n,k) = S(n-1,k-1) + kS(n-1,k)
递推关系的说明:考虑第n个物品,n可以单独构成一个非空集合,这样前n-1种物品构成k-1个非空不可辨别的集合,有 S(n-1,k-1)中方法;也可以前n-1种物品构成k个非空不可辨别的集合,而第n个物品放入任意一个当中,这有kS(n-1,k)种方法。
组合数学、容斥原理_第3张图片
image.png

例题-51nod-1829函数

你可能感兴趣的:(组合数学、容斥原理)