A*

http://okajima.air-nifty.com/b/2010/01/post-abc6.html
余計なことして遊んでたらマジで制限時間ギリギリの3時間かかってしまった...orz
しかも色々はしょっているわ,出力に S, G が出てないわ...
A* で discover されなかったノードに対する情報を出来る限りメモリに乗せないように (implicit graph っぽく) 作るにはどうするんでしょうねぇ,ということを試したかったので意味不明な書き方になってるんだけれど,まー,この入力で A* (@壁をぶち抜く heuristics) だと結局ノードを全部 discover しちゃってる (ホンマかそれ?) よね...
書いた結果の感想としては,こういう問題 (2次元の迷路) だと A* でやってもあんまり楽しくないので普通に BFS で距離埋めていけば良いのではないでしょうか的な. A* は,あれですよ,ほら.もっとこう本質的に高次元で2つ隣を列挙するのすらやばげな問題のほうが面白いと思う.知らんけど?
GCC 4.5 20100107 snapshot の -std=c++0x オプション付 + Boost 1.40.0 で動作確認っていうか,この C++0x をふんだんに取り入れた贅沢な一品を動かせる実装は恐らく GCC 4.5 以外にまだ無いはず.

続きを読む