AOJ1166 Amazing Mazes


※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

AOJ1166 Amazing Mazes

サイト

http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=1166&lang=jp

解説

渾身のギャグの問題です。

入力を理解しましょう。1と0は壁の存在の有無を示しています。

1
0 1
 0
1 0

この入力において、1行目は縦に壁があること、2行目は横に壁がない・あるが連続すること、3行目は縦に壁がないこと、4行目は横に壁がある・ないが連続すること、5行目は縦に壁があること、を示します。

マップ全体を覆う壁は存在が自明なので入力に現れていないことに注意する必要があります。

図を描くと一発で理解できますが面倒で描いてません(クソ)

入力を理解したらそのデータを配列に格納します。取りあえず2つの方式を挙げます。

3次元配列では、wall[四方向][今いるy座標][今いるx座標] = 1(通行可能) | 0(通行不可)

4次元配列では、pass[ny][nx][今いるy座標][今いるx座標] = 1(通行可能) | 0(通行不可)

とすれば良いでしょう。問題の制約が高さも幅も2以上30以下であるので、4次元配列を作っても解けます。メモリは食いますがわかりやすいです。