P5339 [TJOI2019]唱、跳、rap和篮球
\(\text{solution}\)
感觉非常妙啊。
容易发现从 \(n\) 个人中选出 \(i\) 群 cxk 的方案数是 \(C_{n - 3i}^i\),考虑会有重复的,所以考虑容斥。
我们的容斥式子如下:
\[\sum_{i = 0}^{min(a, b, c, d, \frac{n}{4})} (-1)^i \times C_{n - 3i}^{i} \times [剩下的 n - 4i 个数的排列个数]
\]
注意到前面两项是很好求的,考虑第三项怎么求,假设选出 \(i\) 个 cxk,那么剩下的人为 \(a - i, b - i, c - i, d - i\),则有 \(n\) 个重复元素的排列个数为:
\[\frac{(n - 4i)!}{(a - i)!(b - i)!(c - i)!(d - i)!}
\]
那如果 \(a + b + c + d < n\),那么答案为 \(0\),如果大于 \(n\),那么为:
\[(n - 4i)! \sum_{f \le a - i, ... 同理} [f + g + p + q = n - 4i]\frac{1}{f!}\frac{1}{g!}\frac{1}{p!}\frac{1}{q!}
\]
显然这是一个四元卷积,用 NTT 轻松过掉,时间复杂度 \(O(n^2 \log_2 n)\),这个模数真的 6。

浙公网安备 33010602011771号