SDJZ 迷宮問題

2021-06-17 23:46:00 字數 1172 閱讀 4327

小明置身於乙個迷宮,請你幫小明找出從起點到終點的最短路程。

小明只能向上下左右四個方向移動。

輸入包含多組測試資料。輸入的第一行是乙個整數t,表示有t組測試資料。

每組輸入的第一行是兩個整數n和m(1<=n,m<=100)。

接下來n行,每行輸入m個字元,每個字元表示迷宮中的乙個小方格。

字元的含義如下:

『s』:起點

『e』:終點

『-』:空地,可以通過

『#』:障礙,無法通過

輸入資料保證有且僅有乙個起點和終點。

對於每組輸入,輸出從起點到終點的最短路程,如果不存在從起點到終點的路,則輸出-1。

15 5

s-###

-----

##---

e#---

---##9

迷宮問題,此題是bfs,用到了佇列,了解一下佇列的知識,多敲幾遍**,多理解

#include #include #include #include using namespace std;

char map[107][107];

int vis[107][107];

int dir[4][2]=,,,};

int x1,y1,x2,y2,n,m;

struct node

;int bfs()

{ queueq;

node first,next;

first.x=x1;

first.y=y1;

first.step=0;

q.push(first);

vis[x1][y1]=1;

while(!q.empty())

{first=q.front();

q.pop();

for(int i=0;i<4;i++)

{next.x=first.x+dir[i][0];

next.y=first.y+dir[i][1];

next.step=first.step+1;

if(next.x>=0&&next.x=0&&next.y>t)

{while(t--)

{cin>>n>>m;

memset(vis,0,sizeof(vis));

for(int i=0;i>map[i];

for(int i=0;i

問題 A 迷宮求解問題

時間限制 10 sec 記憶體限制 2048 mb 提交 574 解決 306 提交 狀態 討論版 用乙個m n的矩陣表示迷宮,0和1分別表示迷宮中的通路和障礙。設計乙個程式,對給定的迷宮,求出找到的第一條從入口到出口的通路,或得到沒有通路的結論。我們指定 1 迷宮的入口為矩陣的左上角 1,1 迷宮...

迷宮問題求解(1) 簡單迷宮

標頭檔案 include include include include include maze.h define max 100 typedef struct position datatype typedef struct stack stack void stackinit stack s ...

迷宮問題1

c 語言程式設計練習1 程式設計練習 編寫程式尋找迷宮路徑。入口 x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x 出口x 圖1讀取迷宮檔案 如圖1所示 不限於此迷宮 以入口為開始 出口為終點 程式設計尋找一條穿越迷宮的路...