地図データの読み込み時点で壁をつける
- 上下左右は
for d in [-1, +1, -WIDTH, +WIDTH]:
になる - 一度に動きうる距離で壁の幅SENTINELを決める
- スタート地点などはSENTINELだけずれる
- 元々1オリジンの時があるので注意
https://github.com/nishio/atcoder/blob/master/libs/readMap.py
PAST5での追記
- PAST5E 今まで1個読み込むだけだったが、この問題では「番兵の幅が異なる2つ」を読む必要があった
- さらに片方だけ回転されるのでバグの元になった
- クラスにした、回転もメソッドにしといた
- PAST5H
- グリッドグラフを構築しないことが必要だった
- PAST5G 「隣接関係でグラフにするところはライブラリ化してもいいかもな」と書いていたがそもそもグラフにすることを避けるべき
以前numpyで読むものを作った
- 番兵付きの一次元配列
- が、よく考えるとこういうデータを扱う時、だいたい地図に対して添え字でランダムアクセスする
- のでnumpyで待つよりリストで持つ方が良い
- see numpyの添え字アクセスは遅い