ABC470 E - Concentration
神経衰弱
考え方
実は、大きいカードを狙って引く方法は存在しない。
よって、各カードのペアを成立させられる確率は、すべて同一である。
したがって、ペアにできる組数の期待値を出せれば、それにカードの値の平均値をかければ答えとなる。
ペアにできる組数の期待値は、動的計画法で、値が小さいところから順に期待値を求めればよい。
dp[i][j][k] は、残りライフ $i$、残りペア数 $j$、片方見えているペア数 $k$、という状態での期待値とする。
dp[i][j][k] の値は、以下の $4$ つの寄与の総和で求まる。
$1$ つめ。
$1$ 枚目が既知のカードの相方だった場合。
これは、片方見えているペアが存在する場合のみ存在する。
そうなる確率は $\frac{k}{2j-k}$ で、それに dp[i][j-1][k-1]+1 をかけた分が寄与となる。
$2$ つめ。
$1$ 枚目と $2$ 枚目が偶然ペアだった場合。
これは、どちらも見えていないペアが存在する場合のみ存在する。
そうなる確率は $\frac{2(j-k)}{(2j-k)(2j-k-1)}$ で、それに dp[i][j-1][k]+1 をかけた分が寄与となる。
$3$ つめ。
$1$ 枚目は未知で、$2$ 枚目が既知のカードの相方だった場合。
これは、ライフが $2$ 以上かつ、どちらも見えていないペアが存在する場合のみ存在する。
そうなる確率は $\frac{2(j-k)k}{(2j-k)(2j-k-1)}$ で、それに dp[i-1][j-1][k]+1 をかけた分が寄与となる。
$4$ つめ。
$1$ 枚目も $2$ 枚目も未知のカードだった場合。
これは、どちらも見えていないペアが $2$ 組以上存在する場合のみ存在する。
そうなる確率は $\frac{4(j-k)(j-k-1)}{(2j-k)(2j-k-1)}$ で、それに dp[i-1][j][k+2] をかけた分が寄与となる。
これら $4$ つの寄与を合計して dp[i][j][k] に入れることを繰り返していく。
全体を埋めたら、dp[L][N][0] の値がペア数の期待値。
最後に、忘れずにカードの値の平均値をかけたら答え。
計算量は $O(LN^2)$ である。
入力例1での動作
入力を受け取る。
n: 3
l: 2
a: {1, 2, 3}
dp[i][j][k] は、考え方で説明した通りの期待値とする。
初期値はすべて $0$ とし、i, j, k の順に小さい方から埋めていく。
i=1 のとき、各状態は次のようになる。
dp[1][1]: {1, 1}
dp[1][2]: {2/3, 4/3, 2}
dp[1][3]: {1/3, 4/5, 5/3, 3}
続いて i=2 の状態を埋める。
dp[2][1]: {1, 1}
dp[2][2]: {2, 2, 2}
dp[2][3]: {29/15, 43/15, 3, 3}
よって、獲得できるペア数の期待値は dp[2][3][0] $=\frac{29}{15}$ である。
カードに書かれた値の合計は、$1+2+3=6$ なので、平均は $6\div 3=2$。
したがって、答えは $\frac{29}{15}\times 2=\frac{58}{15}=3.866666\dots$
注意点
特になし。
別解
特になし。