D - Teleport Maze Editorial by Tamiji


以下のようにグラフを構築します.

  • 各マスおよび(ワープ中であることを示す)英小文字に対応する頂点を作る.
  • 隣接する障害物が無いマスの頂点の間に,重み \(1\) の無向辺を張る.
  • ワープマスの頂点からアルファベットの頂点へ,重み \(1\) の有向辺を張る.
  • アルファベットの頂点からワープマスの頂点へ,重み \(0\) の有向辺を張る.

求めるべきは \((1,1)\) から \((H,W)\) への最短距離なので, 0-1 BFS により求めることができます.

計算量は \(O(HW)\) です.

posted:
last update: