题面描述
给定集合 \(A\) 和 \(B\),求完全匹配满足 \(\sum[a_i>b_i]-[a_i\le b_i]=k\) 的方案数
题解
首先,题意即是要求匹配满足 \(\sum[a_i>b_i]=\frac{n+k}{2}\) 的方案数,假设状态 \(h_{i,j}\) 表示前 \(i\) 个 匹配满足 \(\sum[a_k>b_k]=j\) 的方案数
考虑转移的顺序,发现对于当前决策\(a_k>b_k\)而言,必须考虑当前状态下有多少满足的 \(b_k\),这就要求我们一开始把两者排序,则当前符合决策的 \(b_k\) 必定有 \(j\) 个已选,即有转移
\[ h_{i,j}\ =\ h_{i-1,j}+h_{i-1,j-1}\times(less_i-(j-1)) \] 我们发现对于 \(h_{n,k}\) 而言,我们得出并不是合法方案,因为中间放弃匹配的 \(a\) 最后必须匹配,所以 \(h_{n,k}\times(n-k)!\) 就是至少选出 \(k\) 个匹配的方案数
不妨设 \(f_k\) 为恰好为 \(k\) 组的方案数,\(g_k\) 为至少为 \(k\) 组的方案数,注意到 \(f_i\) 与 \(f_j\) 表示的集合无交集,发现 \(f\) 和 \(g\) 正好满足
\[ g_k\ =\ \sum_{i=k}^n\binom{i}{k}f_k \]
根据二项式反演
\[ f_k\ =\ \sum_{i=k}^n(-1)^{i-k}\binom{i}{k}g_k \]
最后求解即可
实际上这就是广义容斥的至少到恰好的运用
若有集合 \(S_1\),\(S_2\),\(S_3\), ... \(S_n\) 和指标集 \(\mathcal{I}\),和作用于指标集的函数 \(f\) 和 \(g\) 有
\[ f(I)\ =\ |\bigcap_{\alpha\in I}S_{\alpha}-\bigcup_{\alpha\notin I}S_{\alpha}| \]
即 \(f(I)\) 满足元素恰好在指标集 \(I\) 所代表的集合的交中,而不在其他不属于 \(I\) 的集合中
\[ g(I)\ =\ |\bigcap_{\alpha\in I}S_{\alpha}| \]
即 \(g(I)\) 满足至少在指标集 \(I\) 的元素个数
\[ g(I)\ =\ \sum_{I\subseteq J}f(J) \]
则有
\[ f(I)\ =\ \sum_{I\subseteq J}(-1)^{|J|-|I|}g(J) \]
而在这道题的对于我们就是把 \(S_i\) 表示 \(a_i\) 的所配对的 \(b_i\) 有 \(a_i>b_i\),在这个意义下使用广义容斥罢了
特别的,假如说对于 \(|I|\) 一定的子集的贡献可以统一起来用组合数计算贡献时,广义容斥即派生出组合广义容斥
此外,对于
\[ g(I)\ =\ |\bigcup_{\alpha\in I}S_{\alpha}-\bigcup_{\alpha\notin I}S_{\alpha}| \]
\(g(I)\) 表示至多在指标集 \(I\) 的元素个数,有
\[ g(I)\ =\ \sum_{J\subseteq I}f(J) \] \[ f(I)\ =\ \sum_{J\subseteq I}(-1)^{|I|-|J|}g(J) \]
1 |
|