844メイズ(BFSテンプレート)

迷路を表すために使用される整数のN * Mの二次元アレイ、所与、アレイは、0または1であり、0が通行壁1表し、移動するための方法を表すが含ま。

最初に、それぞれの人に知られている左上(1,1)に人が、上下移動、左、右いずれかの方向に1つの位置だけシフトすることができるあります。

少なくともニーズに右下隅(N、M)の左上から人物の移動を何度も移動するであろう。

(1,1)及び(N、M)にそのデジタルデータを確実にするために0であり、かつ少なくとも1つの通路が存在しなければなりません。

入力形式

最初の行は二つの整数nとmを含有します。

その後、N行、M個の整数(0または1)を含む各行は、二次元アレイは、完全な迷路を表します。

出力フォーマット

出力整数は、モバイルの右下隅に左上から移動の最小数を表します。

データ範囲

1 N M 100 1≤n、m≤100

サンプル入力:

5 5
0 1 0 0 0
0 1 0 1 0
0 0 0 0 0
0 1 1 1 0
0 0 0 1 0

出力例:

8

bfs一般用于求最短路径/最少次数这种问题,每个状态的变化权值必须一样

代码:
輸入java.util.ArrayDeque;
インポートjava.util.Scanner;
クラスノード{
      int型のX。
     int型のy;
     int型ステップ;
     パブリックノード(int型のx、int型のy、int型のステップ){
            この .X = X。この .Y = Y。この。ステップ= ステップと 
     } 
} 
パブリック クラスメイン{
         静的 最終 int型 N = 105 静的 int型N、M。
        静的な int型のマップ[] [] =新しい INT [N] [N];
        静的 int型 DX [] = {1、-1,0,0 }。
        静的 int型 DY [] = {0,0,1、-1 }。
        静的 ArrayDeque <ノード> Q = 新しい ArrayDeque <> ();
        静的 ボイドBFS(){ 
                q.offer(新しいノード(0,0,0 ))。
                一方、(!q.isEmpty()){ 
                        ノードT = q.poll()。
                        もし(TX == N-1 && TY == M-1 ){ 
                                のSystem.out.println(t.step)。
                                ブレーク ;
                        } 
                        ためINT iは= 0; I <4; I ++ ){
                                 int型 XX = t.x + DX [I]。
                                INT YY = t.y + DY [I]。
                                もし(XX <0 || YY <0 || XX> = N || YY> = M ||地図[XX] [YY] == 1)続けます
                                地図[XX] [YY] = 1 
                                q.offer(新しいノード(XX、YY、t.step + 1 )); 
                        } 
                } 
        } 
        パブリック 静的 ボイドメイン(文字列[]引数){ 
                スキャナスキャン =新しいスキャナ(System.in); 
                N = scan.nextInt()。
                M = scan.nextInt()。
                intは I ++; I <N I = 0 するためのint型、J <M、J ++ J = 0 
                        マップ[I] [J] = scan.nextInt()。
                BFS(); 
        } 
}

 

おすすめ

転載: www.cnblogs.com/qdu-lkc/p/12242202.html