前言
哎,细想即乱,乱则逃。
题目简述
- 有 \(n\) 个正整数 \(a_i\),有 \(m\) 次操作,每次操作,等概率的在非 \(0\) \(a_i\) 中选一个 \(i\),并将 \(a_i\) 减小 \(1\)
- 求 \(m\) 次操作后,期望有多少个 \(0\)。答案对 \(998244353\) 取模。
- \(n\le 15,m\le 200,a_i\le 200\)
题解
- 嗯,怎么说,这题的概率是不同的,那怎么办呢?\(n\) 很小啊,只有一个数变为 \(0\) 时概率才会改变
- 那就,设 \(dp_{s,i}\) 表示还剩集合 \(s\) 中的 \(a_i\) 已经被删为 \(0\),此时已经考虑了 \(i\) 次操作的概率系数,以及方案数。
- 诶,这是什么意思,概率系数形如 \(\prod \frac{1}{{p_i}^{c_i}}\) 我们只需要在 \(i+1\) 的转移,考虑累计概率系数即可,但是我们还有方案数,才为期望,方案数的话,不妨拆贡献到 \(s\) 中新加数的时候加上 \(\binom{i-\sum_{j\in s}a_j}{a_i-1}\) 大概率就是这样。
- 额dp完之后,复杂度就是 \(O(2^nmn)\)
- 可是我们还有一些方案数没有统计,虽然 \(m\) 完了之后概率系数已经统计完了。
- 这里相当于多重集计数,也就是一个背包问题,直接背包作 \(O(2^nnm^2)\)
- 我们采取折半搜索的话 \(O(2^{\frac{n}{2}}\frac{n}{2}m^2+2^nm)\)
后言
- 合合分分,分分合合,系数,方案数,怎么合,怎么分,谁又说的清呢?