題意:給定乙個 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 位置出發,遍歷這個地牢,和一般的遊戲所不同的是,他每一步只能按照一些指定的步長遍歷地牢,要求每一步都不可以超過地牢的邊界,也不能到達障礙上。地牢的出口可能在任意某個可以通行的位置上。牛牛想知道最壞情...