Dwango6th C Cookie Distribution
Dwango6th C Cookie Distribution
题意
有 \(N\) 个孩子,在接下来的 \(K\) 天,每天随机选择 \(a_i\) 个孩子给他们每人一颗糖。\(K\) 天结束后,开心程度是每个孩子得糖数的乘积。求开心程度的期望乘上\(\binom{N}{a_1} \times \binom{N}{a_2} \times \ldots \times \binom{N}{a_K}\),对\((1e^9+7)\)取模。
数据范围
- \(1\le N \le 1000\)
- \(1 \le K \le 20\)
- \(1 \le a_i \le N\)
题解
这题如果直接求解会非常困难,因为要维护每个孩子得到了多少糖。但是,我们可以发现开心程度实际上可以转换为每个孩子从他得到的糖里选一颗糖,最后的不同选择方法有多少种。
那么孩子选到糖的不同,实际上来源于得到糖的日子不同。假设每一天分出去的糖中有\(x_1,x_2\ldots x_k\)颗被选中。当 \(X\) 序列固定时,剩下的糖的分发方式有\(\prod_{i=1}^{K}\binom{N-x_i}{a_i-x_i}\),选择糖的方式有\(\frac{N!}{\prod_{i=1}^{K}x_i!}\)。所以总方式为\(N!\prod^{k}_{i=1}\frac{\binom{N-x_i}{a_i-x_i}}{x_i!}\)。
\(x_i\)对答案的贡献是独立的,所以可以采用动态规划求解。由于需要满足 \(X\) 序列和为 \(N\) ,所以设\(dp(i,j)\)表示前 \(i\) 天 \(X\) 序列和为 \(j\) 的答案。