physics0523's 精進ログ

主に競プロの面白い問題の解法をメモします

Fork in the Road(ABC144-F)

F - Fork in the Road

 

想定解より良いオーダーだったので書きます

 

まず、元のグラフについて、そのノードを通る確率を前から計算していきます。

ノード番号の若いほうから以下の図のような遷移をすると可能です。

f:id:butsuri-0523:20191027233115p:plain

今度は、「そのノードからあと何ノードたどればゴールできるかの期待値」も計算してみましょう。これは右側(頂点番号)の大きい方から探索していきます。

f:id:butsuri-0523:20191027233950p:plain

最後に、それぞれの辺に着目して、その辺を消すと「そのノードからゴールまでの手数の期待値」がどのくらい改善されるのかにそのノードに入る確率を掛けたものが全体の改良幅となるので、それの最小をとったものが解です。

f:id:butsuri-0523:20191027235211p:plain

計算量ですが、どのステップでも各辺に対して1度の操作を行うことになるので\(O(M)\)です。

https://atcoder.jp/contests/abc144/submissions/8170906