[ARC093F] Dark Horse Note
\(\mathbf{Part. -1}\)
- 有 \(2^N\) 个人,按照满二叉树的形态进行淘汰赛,一开始的排列顺序为所有 \((2^N)!\) 个排列之一。
- 你是第 \(1\) 个人,已知每一对人之间的实力关系,具体地说:
- 给出 \(M\) 个人 \(A_1 \sim A_M\)。
- 这 \(M\) 个人都打得过你。
- 你打得过除了这 \(M\) 个人之外的所有其他人。
- 对于剩下的情况(你不参与的情况),编号小的人胜利。
- 问你在所有的 \((2^N)!\) 种情况中,有多少种情况可以取得最终胜利。答案对 \({10}^9 + 7\) 取模。
\(1 \le N \le 16\),\(0 \le M \le 16\),\(2 \le A_i \le 2^N\),\(A_i < A_{i + 1}\)。
\(\mathbf{Note}\)
考虑对会输的层次容斥。如果每个层填的人分别是 \(\{p_i\}\),每层的区间长度为 \(\{l_i\}\),从小到大排序,有:
\[\sum_{S \subseteq Q} (-1)^{|S|}(2^n - \sum_{i = 1}^{|S|}l_i)!\sum_{p}\prod_{i = 1}^{|S|}(p_i - \sum_{j = 1}^{i - 1}l_j)_{l_i}
\]
考虑如何快速计算 \(\sum_{p}\prod_{i = 1}^{|S|}(p_i - \sum_{j = 1}^{i - 1}l_j)_{l_i}\)。似乎不是很好算?考虑按照 \(|S|\) 分组。
\[\sum_{x = 0}^n (-1)^x \sum_{p'\subseteq p, |p'|=x} \sum_{\{l_i\},|l| = x} \Big(\prod_{i = 1}^x (p_i - \sum_{j = 1}^{i - 1}l_j)_{l_i}\Big)\times (2^n-\sum_{i = 1}^x l_i)!
\]
考虑对后面的 DP,设 \(f_{i, j, s}\) 表示前 \(i\) 个 \(p_i\) 选完了,选出来 \(j\) 个,当前 \(l\) 的选择情况为 \(s\). 转移有:
\[f_{i - 1, j, s} \times \Big(p_i - \sum_{j = 0}^{n-1} \big((s \gg j) \,\&\, 1\big)\times l_j\Big)_{l_k}\to f_{i, j + 1, s \,| \, (1 \ll k)}
\]
\[f_{i - 1, j, s} \to f_{i, j, s}
\]
则
\[\sum_{p'\subseteq p, |p'|=x} \sum_{\{l_i\},|l| = x} \Big(\prod_{i = 1}^x (p_i - \sum_{j = 1}^{i - 1}l_j)_{l_i}\Big)\times (2^n-\sum_{i = 1}^x l_i)! \\
= \sum_{s = 0}^{1\ll n}f_{m, x, s}\times \Big(2^n - \sum_{i = 1}^n ((s \gg (i - 1)) \, \& \, 1) \times l_i\Big)!
\]
故原式为:
\[\sum_{x = 0}^n (-1)^x \sum_{s = 0}^{1\ll n}f_{m, x, s}\times \Big(2^n - \sum_{i = 1}^n ((s \gg (i - 1)) \, \& \, 1) \times l_i\Big)!
\]
时间复杂度为 \(\mathcal{O}(nm^22^n)\)。
注意到 DP 状态中的 \(j\) 其实没用,可以省略,因此时间复杂度降到 \(\mathcal{O}(nm2^n)\),可以通过题目。

浙公网安备 33010602011771号