いったん会場に着いたら戻れないというルールを見落としてWAし続けた。コーナーケースで落ちてるっぽい時は、問題文を読みなおすべき。
あと、ダイクストラ法の空間計算量の見積もりをときどき間違えてしまう。ダイクストラ法では1つの辺につき高々1回しかenqueue
されないので長さの優先度付きキューを用意すればよいのだが、今回は28倍に増えるので……ではなく、逆辺もあるのでだった。1 (追記) 結局二分ヒープを可変長にしたらこの手の悩みがなくなった。もっと早くやればよかった……
一般の無向グラフでダイクストラ法をする場合、データとしては個の有向辺を持つことになるが、アルゴリズム中では辺がキューに加わる時点で頂点への最短距離が確定しているのでがキューに加わることはない。したがって、キューのサイズはで十分である。ただ、この問題では頂点に状態を持たせた時点で無向グラフではなくなっている。 ↩︎