迷宮 二 計蒜客 BFS解法

2021-09-17 21:46:23 字數 1146 閱讀 8944

題目 :

蒜頭君在你的幫助下終於逃出了迷宮,但是蒜頭君並沒有沉浸於喜悅之中,而是很快的又陷入了思考,從這個迷宮逃出的最少步數是多少呢?

輸入格式

第一行輸入兩個整數 n 和 m,表示這是乙個 n×m 的迷宮。

接下來的輸入乙個 n 行 m 列的迷宮。其中 『s』表示蒜頭君的位置,』*『表示牆,蒜頭君無法通過,』.『表示路,蒜頭君可以通過』.'移動,'t』表示迷宮的出口(蒜頭君每次只能移動到四個與他相鄰的位置——上,下,左,右)。

輸出格式

輸出整數,表示蒜頭君逃出迷宮的最少步數,如果蒜頭君無法逃出迷宮輸出 −1。

資料範圍

1≤n,m≤10。

輸出時每行末尾的多餘空格,不影響答案正確性

樣例輸入1

3 4s**.

..*.

***t

樣例輸出1

-1樣例輸入2

3 4s**.

....

***t

樣例輸出2

5

#include

#include

#include

#include

#include

#include

typedef

long

long ll;

using

namespace std;

struct node};

queue q;

int visited[20]

[20];

int n,m,qx,qy,zx,zy;

char maze[20]

[20];

int dx[5]

=;int dy[5]

=;intmain()

if(maze[i]

[j]==

't')}}

q.push

(node

(qx,qy,0)

);while

(!q.

empty()

)else}}

q.pop();

} cout <<

"-1"

<< endl;

return0;

}

迷宮 二 計蒜客 1596

題目鏈結 題目如下 蒜頭君在你的幫助下終於逃出了迷宮,但是蒜頭君並沒有沉浸於喜悅之中,而是很快的又陷入了思考,從這個迷宮逃出的最少步數是多少呢?輸入格式 第一行輸入兩個整數 n和 m,表示這是乙個 n m 的迷宮。接下來的輸入乙個 n行 m列的迷宮。其中 s 表示蒜頭君的位置,表示牆,蒜頭君無法通過...

計蒜客 走迷宮2 bfs

一樣的迷宮,這次要求不是求有多少條出去的路,而是求最短出去的路,使用bfs就可以知道了。需要用乙個char陣列儲存迷宮 乙個int陣列表示距離長度 乙個bool陣列表示是否訪問過 這不是唯一的,還有其它的可能性,可以三合一,如這裡的表示方式 給你乙個 n 行 m 列的二維迷宮。s 表示起點,t 表示...

計蒜客 走迷宮

給乙個 n行 m 列的 2 維的迷宮,s 表示迷宮額起點,t 表示迷宮的終點,表示不能通過的點,表示可以通過的點。你需要從 s 出發走到 t 每次只能上下左右走動,並且只能進入能通過的點,每個點只能通過一次。現在要求你求出有多少種通過迷宮的的方案。輸入格式 第一行輸入 n,m 1 n,m 10 表示...