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