ABC462G

本来切完 ABC 准备看 D 的,结果听说 G 比较水,就先做了 G。

记颜色 \(c\) 在初始球中出现的次数为 \(f_c\),在目标序列 \(G\) 中出现的次数为 \(m_c\)

记随机排列 \(\pi\) 表示第 \(k\) 次抽出的球的编号,则总得分为 \(0\) 可等价于

\[\forall k,\ C_{\pi(k)} \ne G_k \]

考虑直接容斥,设 \(A_k\) 表示事件第 \(k\) 次抽到的球颜色等于 \(G_k\),则

\[\Pr(\text{无事件发生})=\sum_{S \subseteq \{1,2,\dots,n\}} (-1)^{|S|} \Pr\left(\bigwedge_{k \in S} A_k\right) \]

其中 \(\Pr\left(\bigwedge_{k \in S} A_k\right)\) 是强制所有 \(k \in S\) 的位置上抽出的颜色必须等于 \(G_k\) 的概率。

对于固定的 \(S\),满足所有 \(k \in S\) 上颜色等于 \(G_k\) 的排列数目为:

  • 对于每个颜色 \(c\),从 \(f_c\) 个同色球中选出 \(t_c\) 个,并分配到 \(S\) 中颜色为 \(c\) 的位置上,这些球之间有序,即共有 \(t_c!\) 种方式;
  • 剩下的 \(n-|S|\) 个位置以及未被选中的 \(n-|S|\) 个球,可以任意排列,即共有 \((n-|S|)!\) 种方式。

因此,满足所有强制条件的总数为

\[\prod_c \binom{f_c}{t_c} \cdot t_c! \cdot (n-|S|)! = \prod_c \frac{f_c!}{(f_c-t_c)!} \cdot (n-|S|)! \]

于是,对于给定的 \(S\),该事件的概率为

\[\Pr\left(\bigwedge_{k \in S} A_k\right)=\frac{\displaystyle \prod_c \frac{f_c!}{(f_c-t_c)!} \cdot (n-|S|)!}{n!} \]

\(r=|S|\),则容斥和式可以按 \(r\) 分组,而不同的 \(S\) 对应的 \(\displaystyle \prod \frac{f_c!}{(f_c-t_c)!}\) 不仅仅依赖于 \(r\),还依赖于每个颜色上的 \(t_c\) 的分布,我们需要对所有满足 \(\sum_c t_c=r\)\(0 \le t_c \le \min(f_c,m_c)\) 的向量 \((t_c)\) 求和,每个向量的贡献为

\[(-1)^r \cdot \frac{(n-r)!}{n!} \cdot \prod_c \frac{f_c!}{(f_c-t_c)!} \cdot \#\{ S \mid t_c = \#\{k \in S : G_k = c\} \} \]

其中 \(\#\{S\}\) 是选择位置集合使得每个颜色 \(c\) 恰好出现 \(t_c\) 次的方案数。由于 \(G\) 已知,所以从这些位置中选出 \(t_c\) 个的方案数为 \(\binom{m_c}{t_c}\),而不同的颜色相互独立,从而方案数为

\[\prod_c \binom{m_c}{t_c} \]

因此容斥总和为

\[\sum_{\substack{t_c \ge 0 \\ \sum t_c=r}} (-1)^r \frac{(n-r)!}{n!} \prod_c \frac{f_c!}{(f_c-t_c)!} \binom{m_c}{t_c} \]

\(r\) 的求和提到外面:

\[\text{ans} = \frac{1}{n!} \sum_{r=0}^n (n-r)! \cdot \sum_{\substack{t_c \\ \sum t_c=r}} \prod_c \frac{f_c!}{(f_c-t_c)!} \binom{m_c}{t_c} \]

\[P_c(x)=\sum_{t=0}^{\min(f_c,m_c)} (-1)^t \frac{f_c!}{(f_c-t)!} \binom{m_c}{t} \cdot x^t \]

则多项式乘积为

\[P(x)=\prod_c P_c(x) = \sum_{r} a_r x^r \]

其中

\[a_r=\sum_{\sum t_c=r} \prod_c (-1)^{t_c} \frac{f_c!}{(f_c-t_c)!} \binom{m_c}{t_c} \]

于是答案为

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

注意到

\[\frac{f_c!}{(f_c-t)!} = f_c^{\underline t} \]

组合数

\[\binom{m_c}{t} = \frac{m_c!}{t!(m_c-t)!} \]

所以

\[P_c(x)=\sum_t (-1)^t \cdot f_c^{\underline t} \cdot \binom{m_c}{t} \cdot x^t \]

由于颜色总数最多为 \(n\),对于每个出现过的颜色,有

\[\deg(P_c(x)) \le \min(f_c,m_c) \]

可以用 NTT 直接优化到 \(O(n \log^2 n)\),且模数为 \(998244353\),原根为 \(3\),NTT 即可。

Submission。

posted @ 2026-06-23 18:25  constexpr_ll  阅读(6)  评论(0)    收藏  举报