bfs佇列的演算法,走迷宮

2021-09-13 12:29:41 字數 955 閱讀 8019

problem description

有乙個二維迷宮,n行m列,『s』表示迷宮的起點,『t』表示迷宮的終點,『#』表示圍牆,『.』表示通路。

現在從s出發,你不能穿牆,問到達終點t最少需要多少步?

輸入格式

第一行輸入n,m(1<=n,m<=50)表示迷宮的行列大小。

接下來輸入n行字串表示迷宮。

輸出格式

乙個整數,表示走出迷宮所需的最小步數,若走不出迷宮則輸出 -1。

樣例輸入1

2 3

s.#..t

樣例輸出1

3
樣例輸入2

3 3

s.#.#.

.#t

樣例輸出2

-1
# include # include # include # include using namespace std;

const int maxn=1000;

typedef struct node //將座標看做結構體在佇列中操作

}node;

queueq;//q裡面放的是結構體

int m,n;

char map[maxn][maxn];

int vis[maxn][maxn];

int s[2][2];

int val;

char ch;

int dp[4][2]=;

int bfs(int x,int y,int f)

}return -1;

}int main ()

if (map[i][j]=='t')

}ch=getchar();

}int t=bfs(s[0][0],s[0][1],0);

printf ("%d\n",t);

return 0;

}

簡單BFS 走迷宮

描述 l上次旅行進入了乙個迷宮,他被困在了乙個n m的矩形迷宮中。l開始在左上角的點,他知道出口在右下角,他可以向四個方向移動到相鄰的點。不過這個迷宮有些魔法,每個格仔有一種顏色,不同的顏色代表不一樣的功能 如果格仔是紅色的,表示當前格仔無法通行 如果格仔是粉紅,表示格仔可以正常通行 如果是橙色,當...

BFS 走迷宮問題

已知圖g v,e 和乙個源頂點s,寬度優先搜尋以一種系統的方式探尋g的邊,從而 發現 s所能到達的所有頂點,並計算s到所有這些頂點的距離 最少邊數 該演算法同時能生成一棵根為s且包括所有可達頂點的寬度優先樹。對從s可達的任意頂點v,寬度優先樹中從s到v的路徑對應於圖g中從s到v的最短路徑,即包含最小...

bfs入門 走迷宮

題意 給乙個n m的二維陣列,s表示入口,t表示出口,點表示牆不可達,表示路可達。求s走到到t的最短距離。輸入樣例 5 6.s t.輸出樣例 include include include include include include include using namespace std con...