ACM 迷宮的最短路徑(bfs版)

2021-07-02 05:00:14 字數 841 閱讀 5430

//給定乙個大小為n*m的迷宮,迷宮由通道和牆壁組成,每一步可以向鄰接

//的上下左右四格的通道移動。請求出從起點到終點的最小部署,本題假設

//從起點一定可以移動到終點

//input

// n=10,m=10

//#s######.#

//......#..#

//.#.##.##.#

//.#........

//##.##.####

//....#....#

//.#######.#

//....#.....

//.####.###.

//....#...g#

//output

//22

#include "iostream"

#include "queue"

using namespace std;

const int inf=10000000;

typedef pairp;

const int max_n=1000;

char maze[max_n][max_n];

int n,m;

int sx,sy;//起點座標

int gx,gy;//終點座標

int d[max_n][max_n];//最短距離

int dx[4]=;

int dy[4]=;

int bfs()

solve();

return 0;

}

關鍵在於用d[x][y]是否等於inf判斷改點是否已經被搜尋過

利用佇列對中間狀態進行保留

BFS 迷宮的最短路徑

迷宮的最短路徑 給定乙個大小為n m的迷宮。迷宮由通道和牆壁組成,每一步可以 向鄰接的上下左右四個方位的通道移動,請求出從起點到終點所需的最小不熟。此題假設一定能從起點到終點 限制條件 n,m 100 樣例 輸入 10 10 s g 輸出 22 include include includeusin...

迷宮的最短路徑 bfs

給定乙個大小為n m的迷宮,由通道 和牆壁 組成,其中通道s表示起點,通道g表示終點,每一步移動可以達到上下左右中不是牆壁的位置。試求出起點到終點的最小步數。本題假定迷宮是有解的 n,m 100 樣例輸入 樣例輸出 include include include using namespace st...

BFS 迷宮的最短路徑

迷宮的最短路徑 給定乙個大小為n m 的迷宮。迷宮由通道和牆壁組成,每一步可以向鄰接的上下左右四格的通道移動。請求出從起點到終點所需的最小步數。請注意,本題假定從起點一定可以移動到終點 限制條件 n m 100 s g 分別代表 牆壁 通道 起點和終點。sample input 10 10 s g ...