P5279 [ZJOI2019]麻将 题解

首先,必须先考虑一副牌是否是“胡”的,不然解决这道期望题就是无稽之谈。所以我们可以先把 $7$ 个对子的特殊情况判掉,接下来用 $\text{DP}$ 判断 $1$ 个对子、$4$ 个面子的情况。

用 $f_{i,j,k,t}$ 表示考虑了前 $i$ 种牌,是否已经有对子了($j=0$ 表示否,$j=1$ 表示是),多余的像 $i,i-1$ 这样的一组牌有 $k$ 组,多余的第 $i$ 种牌有 $t$ 个的情况下,最大产生的面子数量。

接下来来回到这道题。设 $X$ 表示最早产生胡牌的轮数的随机变量,$p(x)$ 表示恰好 $x$ 轮时第一次产生了胡牌的概率。$$ E(X)=\sum_{x=0}^{4n-13} x \times p(x) $$

$$ E(X)=\sum_{x=0}^{4n-13} \sum_{i=0}^{n-1} \times p(x) $$

$$ E(X)=\sum_{i=0}^{4n-13} \sum_{x=i+1}^{4n-13} \times p(x) $$

$$ E(X)=\sum_{i=0}^{4n-13} P(\text{x轮时还没有胡牌的概率}) $$

$$ E(x)=\sum_{i=0}^{4n-13} \frac{\text{x轮时还没有胡牌的方案数}}{C_{4n-13}^i} $$

所以我们的重中之重就是求出 $x$ 轮还没有胡牌的方案数。

我们使用 DP 套 DP 解决此问题。我们把上述简易 DP 的状态和其对应的对子数量作为内层 DP 状态给压缩起来(注意 $i$ 那维不要压进去,我们将会把那一维单独地放入外层的状态里),我们发现实际有用的状态可能很少,故而用搜索找。那么我们的外层状态就显而易见了:$dp_{i,j,k}$ 表示前 $i$ 种牌,内层状态为 $j$,总共选了 $k$ 张的方案数。

至于查询没有胡牌的方案数,只需要判断加求和就行了。

posted @ 2023-04-28 21:23  徐子洋  阅读(16)  评论(0)    收藏  举报  来源