ツバサの備忘録

主に備忘録代わりに精進記録を載せていくつもりです。

AOJ 2153 Mirror Cave

問題
提出コード

解法

普段のグリッドに対するBFSが2次元ならば、今回は4次元です。
Len君が(x_{L},y_{L})、Ren君が(x_{R},y_{R})にいるときに、そこから行くことができる4通りの方向に進みます。
そして、(x_{L},y_{L}),(x_{R},y_{R})に行くことができるかどうかを調べていき、それぞれがゴールのマスに同時にたどり着くならば、答えは"Yes"、そうでなければ"No"になります。
そして、ある方向に進むとき、進んだ先が壁"#"になっている、もしくは迷路の外に出てしまう場合、その場にとどまるような処理を入れ忘れないようにします。あとは、基本的なBFSと同じような処理をしていけば、答えを求めることができます。

解法

この手の問題をサクっと解けるようになりたいですね(って毎回言ってる気がしますが…)。
やりたいことはすぐわかる問題で、BFSをする問題はだいたいバグを生やしているイメージなのでなんとかしたいです。昔よりは綺麗に書くようになったので多少は減ったのですが、今回のように次元が増えるとまた汚くなりますね。