解法
bitDPです。
期待値の考え方については、こちらの問題のおかげですんなりいきました。
座標においてある物の状態が
である場合に、そこから全ての物を倒すまでに投げるボールの回数の期待値
とします。座標は0~15までしかないので、このようなことができます。座標に物が存在するとき、右から
番目のビットに1を立てます。すると、この状態は
で表現することができます。
さて、初期状態はとなります。
ある状態の際にボールを
めがけて投げると、
のどこかに物が存在していれば、倒すことができます。確率はすべて
なので、座標
にボールが落ちたときに
から
に遷移すると仮定すると、
は次のように表現することができます。
式変形すると、次のようになります。
さて、これを再帰なりなんなりを用いて、全てのについて計算した上で最小値を求めればいいのですが、注意が必要です。
が、実は
と同じ状態になる可能性があります。
に物が存在しなかった場合です。
例えば、と
には物が存在して、
には物が存在しなかった場合は、
となります。
これは、式変形をさらに行い、
とすることができます。
また、のどの場所にも物が存在しなかった場合、この式を適用することはできず、またそもそもこれが最適解になることはありえない(1回分無駄うちしていることになります)ので、スルーすることに注意しましょう。
あとは、このDPをうまく実装して、全てのに対しての計算を行い、最小値を求めていけば、答えを求めることができます。