基本问题整理

1.组合计数

给定 \(n\) 个完全相同的球,要分成 \(k\) 组,要求每组球至少有一个球,求方案数。

原问题可以转化成有 \(n-1\) 个空,要将 \(k-1\) 块板子插在中间,将其分成 \(n\) 份。答案即为 \(\tbinom{n}{r}\)

2.组合计数

原问题与 1. 几乎一致,不过每组球可以为空。

我们考虑在原来的球数上加上 \(k\) 个球,然后再按照 1. 的方法来分,分完后再将原来的 \(k\) 个球拿走。答案即为 \(\tbinom{n+k-1}{n}\)

3.组合计数

原问题与 1. 几乎一致,不过要求第 \(i\) 组球至少有 \(a_i\) 个。

我们设分完后第 \(i\) 组球有 \(x_i\) 个,显然根据要求 \(x_i \geq a_i\),据此我们可以列出等式。

\[x_1+x_2+...+x_k=n \]

再令 \(x^{'}_i=x_i-a_i\)

所以

\[(x^{'}_1+a_1)+(x^{'}_2+a_2)...(x^{'}_k+a_k)=n \]

\(a_i\) 移到右边,可得

\[x^{'}_1+...x^{'}_n=n-a_1-a_2-...a_k \]

因为 \(x_i\geq a_i\),所以 \(x^{'}_i\geq 0\),问题转化成 2. ,答案即为 \(\tbinom{n-\sum^{k}_{i=1}a_i+k-1}{k-1}\)

4.组合计数

原问题与 1. 几乎一致,不过要求没有一组球个数超过 \(m\)

考虑容斥,暴力枚举有几组球大于 \(m\) 个,剩余的随便填,对于每一个子问题就转化成了问题 3. 求解即可。

\[ans=\sum^{k}_{i=1}(-1)^i\times\tbinom{k}{i}\times\tbinom{n-m\times i+k-i-1}{k-i-1} \]

posted @ 2024-02-26 07:45  ktq_cpp  阅读(52)  评论(0)    收藏  举报