アカウント名:
パスワード:
最短経路が2^32-3ステップ未満ならこれでいけると思います。ゴールが見つかったときに打ち切らず、そのステップが終了するまで探索すれば、複数解がある場合も求められます。
Cで30分くらいで書けるんじゃないかな。
おおっと。他のコメント読んでいませんでしたが、okkyさんとほぼ同じでしたか。ちなみにこのやり方なら、迷路が長方形であろうとなかろうと(壁で囲まれているなら)使えます。
最短経路より短い経路は全て調べつくし、それより長い経路は調べないので、直感ですが探索量は最小だと予想します。アルゴリズムも単純なので、バグが少なく短時間で組める点もメリットです。 リンク先の「Lv4の2名」も似たような方法で解いたと思いますが、もしこれ以外の方法で解いたのならどんな方法だか興味があります。
迷路が長方形であろうとなかろうと(壁で囲まれているなら)使えます。
それは与えられたダンジョンの周囲に、もう一周、番兵(この場合は壁ですね)を別途張ってあげれば解決すると思います。潤沢にメモリを使って良くて、なおかつアドレス空間も腐るほどあると仮定していいなら、これが簡単。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
Stableって古いって意味だっけ? -- Debian初級
メモリいくら使ってもいいんですよね? (スコア:2)
テキストからメモリに読み込む(unsigned int 2次元配列)。壁はオール0xff、空間は0x0、読み込みの際にSの位置を見つけておいて0x1、Gは0xfffffffe。
(メモリが潤沢ならここで0x2を埋めた座標を保存しておいて次のループで使う。メモリが少ないなら毎回2次元配列をフルスキャンして0x2を見つける)
最短経路が2^32-3ステップ未満ならこれでいけると思います。ゴールが見つかったときに打ち切らず、そのステップが終了するまで探索すれば、複数解がある場合も求められます。
Cで30分くらいで書けるんじゃないかな。
Re:メモリいくら使ってもいいんですよね? (スコア:2)
おおっと。他のコメント読んでいませんでしたが、okkyさんとほぼ同じでしたか。ちなみにこのやり方なら、迷路が長方形であろうとなかろうと(壁で囲まれているなら)使えます。
最短経路より短い経路は全て調べつくし、それより長い経路は調べないので、直感ですが探索量は最小だと予想します。アルゴリズムも単純なので、バグが少なく短時間で組める点もメリットです。
リンク先の「Lv4の2名」も似たような方法で解いたと思いますが、もしこれ以外の方法で解いたのならどんな方法だか興味があります。
Re:メモリいくら使ってもいいんですよね? (スコア:1)
それは与えられたダンジョンの周囲に、もう一周、番兵(この場合は壁ですね)を別途張ってあげれば解決すると思います。潤沢にメモリを使って良くて、なおかつアドレス空間も腐るほどあると仮定していいなら、これが簡単。
fjの教祖様