HALプロコン2009(2)

この土日はなんか体調が悪くて、アルゴリズムは考えていたもののプログラムを書く気が起きず、ずっとグダグダしてました。
で、さっき実装して投げたら523673点/28位。二日前に投げてればスコアボードに乗れたかも。惜しい。
それはさておき、テストプログラムの実行がものすごく時間かかってしょうがないので、ちょっと高速化してみました。具体的には、create.cppを見ると確実にゴールできるFieldを生成するために、塗りつぶしで有効判定をしているのが非常に重そうだったので、フィールドを先にファイルに書き出しておいて必要に応じて読み込むように改良。どうせ疑似乱数のSeedは固定されているし、Field生成部は他から隔離されているのでこれでも問題ないはず。
この改良だけで、テストに40秒くらいかかっていたのが一気に0.2秒にまで縮みました。やべえww
パッチ。
このパッチを当てて、なんか引数をつけて実行するとIndex=0〜999までのフィールドをhpcfieldディレクトリに吐きます。このディレクトリは先に作っておいてください。その後普通に実行すると、ファイルからフィールドを読み込むようになります。