Loading

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。

posted @ 2023-06-05 17:50  Alexande  阅读(31)  评论(0)    收藏  举报