No.016 D

※ コードは WA が取れていない

ある海域 に体力 でいるときに, ゴールまでたどり着くまでの時間の期待値を とする. また, 海域 から行くことができる海域の集合を とする.

まずは海域 に体力 でいるときに撤退しなければならないかどうかを として, 以下の方法で調べる.

  • ならば撤退しない.
  • の要素について 以上の となる が存在するならば撤退しなければならない.
  • の要素すべてについて が true ならば撤退しなければならない.

が true であるならば, ゴールにはたどり着けない.

さて, であるが, 海域 に体力 でいるときに撤退しなければならない場合は,

となる. そうでないときは,

となる. これを再帰的に計算して を求めればいいのだが, このままでは無限ループしてしまう.

そこで, 右辺の とおいて, 左辺の を計算してみる. が真の値より大きければ, 計算した より小さくなるので, この情報をもとに二分探索で を決定する.