EDPC I - Coins
コイン
考え方
ABCでいうと、D問題級。
「表が半分より多い確率」だけを継承してもしょうがないので、「表が $j$ 枚出る確率」を全部継承する。
コインが $0$ 枚のときは「$0$ 枚の確率は $1$、それ以外は $0$」で初期化する。
その後は $i$ 枚目までで $j$ 枚表が出るには
- $i-1$ 枚目までで $j-1$ 枚表が出て、$i$ 枚目も表が出る
- $i-1$ 枚目までで $j$ 枚表が出て、$i$ 枚目は裏が出る
のどちらか、と考えて $2$ つの確率の和を計算していけばいい。
(全部表や全部裏の場合、片方しか値がないことに注意)
最終的に $n$ 枚での確率を全部出したら、半分より多く表が出る範囲を合計すればいい。
もしくは、dp[(N+1)/2] を「半分以上」をまとめたものに対応させてもよい。
計算量は $O(N^2)$。
入力例1での動作
入力を受け取る。
n: 3
p: {0.30, 0.60, 0.80}
今回は、表が $2$ 枚以上なら表の方が多くなる。
そのため、表が $0$ 枚、$1$ 枚、$2$ 枚以上となる確率を管理する。
最初は、表が $0$ 枚である確率だけが $1$ である。
{1.0, 0.0, 0.0}
$1$ 枚目のコインでは、表の確率が $0.30$ である。
裏の確率は $0.70$ である。
{0.70, 0.30, 0.0}
$2$ 枚目のコインでは、表の確率が $0.60$ である。
表が $0$ 枚の確率を求める。
$0.70\times0.40=0.28$ となる。
表が $1$ 枚の確率を求める。
$0.70\times0.60+0.30\times0.40=0.54$ となる。
表が $2$ 枚以上の確率を求める。
$0.30\times0.60=0.18$ となる。
{0.28, 0.54, 0.18}
$3$ 枚目のコインでは、表の確率が $0.80$ である。
表が $0$ 枚の確率を求める。
$0.28\times0.20=0.056$ となる。
表が $1$ 枚の確率を求める。
$0.28\times0.80+0.54\times0.20=0.332$ となる。
表が $2$ 枚以上の確率を求める。
$0.18+0.54\times0.80=0.612$ となる。
{0.056, 0.332, 0.612}
表の方が多くなる確率は $0.612$ なので、答えは $0.612$。
注意点
特になし。
別解
特になし。