仮想判事POJ 2251ダンジョンマスター

3次元配列の検索が広くなります

する#include <STDLIB.H> 
する#include < 文字列・H> 
の#include <stdio.hに>
 のconst  int型   MAXN = 50 ;
 int型C、K、H;
 CHARミリアンペア[MAXN] [MAXN] [MAXN];   // 三次元の定義LWHアレイ
INT ;ログイン[MAXN] [MAXN] [MAXN]   // タグ配列
構造体ノード{
     int型 C、K、H; // 構造は、長い記録幅h高k C点に達する
    のint工程; // 移動するステップ数
};
 構造体ノードT [ 33433 ]; // 構造キュー
構造体ノードP、Q、W、L、
 INTは F [] [3 ] = { 00100 - 10100 - 10100 - 100 }; // フロント上下左右移動二階含む6つの方向
空隙BFSを(){ 
    訪問[PC] [PK] [てpH] = 1 ; // タグがなくなった
    INTフロント= 0、REAR = 0  
    T [リア++] = P; // エンキュー
    しばらく {(=前後!)// キューが空でない場合場合 
        W = T [フロント++ ];
         IF(QC && w.k WC == == == QH QK && W.H ){ // エンドポイントを直接出力する場合 
            のprintf(" \ N-%のD(Sにおいて分エスケープ)" 、w.step);
             返す; 
        } 
        ためint型 I = 0 ;私は< 6。 ; Iは++){ // そうでない場合は、トラバース6つの方向 
            L = W; 
            LC + = F [I] [ 0 ]; 
            LK + = F [I] [ ]。1 
            LH + = F [I] [ 2 ];
             IF(LC> = 0 && L.C. <&& l.k C> = 0 && l.k <&& l.h K> = 0 && l.h <H &&ミリアンペア[LC] [LK] [ !LH] = ' ' &&訪問[LC] [LK] [LH] == 0){ // 条件の場合 
                l.step ++; // ステップ数が増加 
                訪問[LC] [LK] [LH] = 1 ; / / 訪問マーキング 
                T [REAR ++] = Lを; // キューに入れ
            } 
        } 
    } 
    のprintf(" 閉じ込められました!\ N "); //そうでなければ、出力は到達できない
}
 int型のmain(){ 
    memsetの(T、0はsizeof構造体 ;ノード))   // 空に
    しばらく(〜scanfの(" %D%D%D " {&C&K、&H))を// C kの長い幅h高い
        IF(Cの== 0 &&のk == 0 &&時間== 0BREAK ;
         のためint型 I = 0 ;私はCを<; I ++は){
             ためINT J = 0 ; J <K。 ++ J ){ 
                scanfの("Sの%、ミリアンペア[I] [J]); // 文字列の入力
                のためのINT W = 0 ; W <H、W ++ ){
                     IF(ミリアンペア[I] [J] [W] == ' S '){ // 記録開始点 
                        PC = I; 
                        PK = J; 
                        てpH = W; 
                        p.step = 0 ; 
                    } そう IF(ミリアンペア[I] [J] [W] == ' E '){ // レコード端
                        = QC I; 
                        QK = J; 
                        QH = W; 
                    } 
                } 
            } 
        } 
        のmemset(訪問、0はsizeof(訪問)); // クリアタグアレイ 
        BFS(); // 全体の検索
    }
     戻り 0 ; 
}

 

おすすめ

転載: www.cnblogs.com/QingyuYYYYY/p/11746390.html
おすすめ