問題はこちら
問題概要
頂点辺の閉路のない有向グラフ(=DAG)が与えられる. 頂点から辺をたどって頂点Nに行くことを考える. 各頂点から出ている辺から等確率でランダムに選び進む. このグラフから一つだけ辺を取り除けるとき頂点に到達するまでに通る辺の数の期待値の最小値を求めよ.
思考の流れ
まず辺を取り除かない場合の期待値は, グラフがDAGであることからDPで求められる. 具体的にはを「頂点からまでに通る辺の数の期待値の最小値」として
となる.
1つの辺を取り除いたあと, その辺以降の頂点のDPの値は変わらない. その辺以前の頂点のDPの値を再計算する. すべての辺に対してその辺を取り除いたときの値を考えると計算量はかかり間に合わない.
よく考えると, 一つの頂点に対してその頂点から出る辺の先の頂点のDPの値が最も高いものを削除するのがいいことがわかるので, 各頂点に対して一つの辺のみ考えればいい. 計算量はとなり間に合う.
提出プログラム
https://atcoder.jp/contests/abc144/submissions/12454169
感想
すんなりわかってよかった.