2019年3月25日月曜日

WUPC 2012 E - 会場への道

WUPC 2012 E - 会場への道

いったん会場に着いたら戻れないというルールを見落としてWAし続けた。コーナーケースで落ちてるっぽい時は、問題文を読みなおすべき。

あと、ダイクストラ法の空間計算量の見積もりをときどき間違えてしまう。ダイクストラ法では1つの辺につき高々1回しかenqueueされないので長さE|E|の優先度付きキューを用意すればよいのだが、今回は28倍に増えるので28×E28 \times |E|……ではなく、逆辺もあるので28×2×E28 \times 2 \times |E|だった。1 (追記) 結局二分ヒープを可変長にしたらこの手の悩みがなくなった。もっと早くやればよかった……


  1. 一般の無向グラフでダイクストラ法をする場合、データとしては2E2|E|個の有向辺を持つことになるが、アルゴリズム中では辺vwv \rightarrow wがキューに加わる時点で頂点vvへの最短距離が確定しているのでwvw \rightarrow vがキューに加わることはない。したがって、キューのサイズはE|E|で十分である。ただ、この問題では頂点に状態を持たせた時点で無向グラフではなくなっている。 ↩︎