地牢逃脫 BFS

2021-08-06 03:40:29 字數 1104 閱讀 9125

題意:給定乙個 n 行 m 列的地牢,其中 『.』 表示可以通行的位置,』x』 表示不可通行的障礙,牛牛從 (x0 , y0 ) 位置出發,遍歷這個地牢,和一般的遊戲所不同的是,他每一步只能按照一些指定的步長遍歷地牢,要求每一步都不可以超過地牢的邊界,也不能到達障礙上。地牢的出口可能在任意某個可以通行的位置上。牛牛想知道最壞情況下,他需要多少步才可以離開這個地牢。

我必須說:出題人是智障!!

誰能看懂這個鬼題目的意思?啊!!

好吧,經過我的wa經驗來翻譯一下題目:給定乙個迷宮,迷宮的出口可以在任何乙個』.』上面,現在要讓你求最壞情況下的需要移動的次數,如果不能到達出口,輸出-1。也就是說在bfs遍歷完了之後,還要檢查每個』.』,是否能到達!有乙個不能到達,答案就是-1

ac**

#include 

#include

#include

#include

using

namespace

std;

typedef pair pii;

const

int maxn = 50+5;

char mp[maxn][maxn];

int dx[maxn], dy[maxn], dirs;

int d[maxn][maxn];

int n, m, sx, sy;

int bfs() }}

return ans;

}int main()

scanf("%d%d", &sx, &sy);

scanf("%d", &dirs);

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

int ans = bfs();

bool ok = true;

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

for(int j = 0; j < m; j++)

}if(ok) printf("%d\n", ans);

else

printf("-1\n");

}return

0;}

如有不當之處歡迎指出!

廣度優先演算法(BFS) 地牢逃脫

廣度優先演算法,又稱寬度優先搜尋或橫向優先搜尋。簡稱為bfs。本質 圖的遍歷 或搜尋 定義 從圖中某個頂點出發,訪問所有頂點,且每個頂點僅訪問一次。包括連通圖和非連通圖 適用 1 訪問頂點vi 2 訪問vi 的所有未被訪問的鄰接點w1 w2 wk 3 依次從這些鄰接點 在步驟 中訪問的頂點 出發,訪...

2017 校招題目 地牢逃脫 考察 BFS

給定乙個 n 行 m 列的地牢,其中 表示可以通行的位置,x 表示不可通行的障礙,牛牛從 x0 y0 位置出發,遍歷這個地牢,和一般的遊戲所不同的是,他每一步只能按照一些指定的步長遍歷地牢,要求每一步都不可以超過地牢的邊界,也不能到達障礙上。地牢的出口可能在任意某個可以通行的位置上。牛牛想知道最壞情...

網易程式設計題 逃脫地牢

給定乙個 n 行 m 列的地牢,其中 表示可以通行的位置,x 表示不可通行的障礙,牛牛從 x0 y0 位置出發,遍歷這個地牢,和一般的遊戲所不同的是,他每一步只能按照一些指定的步長遍歷地牢,要求每一步都不可以超過地牢的邊界,也不能到達障礙上。地牢的出口可能在任意某個可以通行的位置上。牛牛想知道最壞情...