本来切完 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。