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

2021-08-22 19:41:28 字數 1906 閱讀 3691

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

每個輸入包含 1 個測試用例。每個測試用例的第一行包含兩個整數 n 和 m(1 <= n, m <= 50),表示地牢的長和寬。接下來的 n 行,每行 m 個字元,描述地牢,地牢將至少包含兩個 '.'。接下來的一行,包含兩個整數 x0, y0,表示牛牛的出發位置(0 <= x0 < n, 0 <= y0 < m,左上角的座標為 (0, 0),出發位置一定是 '.')。之後的一行包含乙個整數 k(0 < k <= 50)表示牛牛合法的步長數,接下來的 k 行,每行兩個整數 dx, dy 表示每次可選擇移動的行和列步長(-50 <= dx, dy <= 50)
輸出一行乙個數字表示最壞情況下需要多少次移動可以離開地牢,如果永遠無法離開,輸出 -1。以下測試用例中,牛牛可以上下左右移動,在所有可通行的位置.上,地牢出口如果被設定在右下角,牛牛想離開需要移動的次數最多,為3次。
示例1

複製

3 3

......

...0 1

41 0

0 1-1 0

0 -1

複製

3
出隊 將新的點入隊;改變step[i][j]的值;

d[k][2]在這裡用點的方式儲存;

vectorpos;//構建乙個陣列;

for(inti=0;i

**:#include#include //容器;

#include //斷言

#include//時間

#include//數學

#include //字串

#include //演算法標頭檔案;

#include#include#include#includeusing namespace std;

using ll=long long;

int n,m;

vector>gra;

struct point

; bool isok()

int x0,y0;

cin>>x0>>y0;

point p0(x0,y0);

int k;

cin>>k;

vectorpos;//構建乙個陣列表示他的鄰接點;

for(int i=0;i>dx>>dy;

pos.emplace_back(dx,dy);

}vector>step(50,vector(50,100));//表示的是乙個 走的步數的陣列;

step[x0][y0]=0;//注意起始點的值 應該為0;

queuequeue;

queue.push(p0);

while(queue.size())

{auto cur=queue.front();

queue.pop();

for(int i=0;i注意 bfs 與dfs的比較

1、二維陣列的題目 當n小於20的適用於dfs  當n《=200 n<=1000的 一定不能用dfs;不僅僅是整個題目不能用dfs  其中的每一步 都不能用dfs;

bfs的基本步驟

一般來說能用dfs解決的問題都能用bfs來解決;

dfs(深度搜尋的同時 考慮回溯)

bfs=佇列、入隊、出隊;搜尋到的一定是最優解

dfs=棧、壓棧、出棧;搜尋到的不一定是最優解; 一般情況下需要剪枝操作

2017網易校招真題 地牢逃脫

地牢逃脫 時間限制 1秒 空間限制 32768k 熱度指數 8622 給定乙個 n 行 m 列的地牢,其中 表示可以通行的位置,x 表示不可通行的障礙,牛牛從 x0 y0 位置出發,遍歷這個地牢,和一般的遊戲所不同的是,他每一步只能按照一些指定的步長遍歷地牢,要求每一步都不可以超過地牢的邊界,也不能...

2017校招筆試題

題目 輸入乙個字串從左到右遍歷,如果遇到三個連續相同的子串就將這個子串刪除,並將原串剩下的部分拼接到一起,重複上述過程,直到字串中沒有可以刪除的子串。eg 輸入 aaabccdddcb aabbbabbba 輸出 bb a重要 從乙個字串中刪除乙個子串,必須將原字串的內容strcpy到開闢的數字中 ...

2023年校招題

牛牛有乙個魚缸。魚缸裡面已經有n條魚,每條魚的大小為fishsize i 1 i n,均為正整數 牛牛現在想把新捕捉的魚放入魚缸。魚缸內存在著大魚吃小魚的定律。經過觀察,牛牛發現一條魚a的大小為另外一條魚b大小的2倍到10倍 包括2倍大小和10倍大小 魚a會吃掉魚b。考慮到這個,牛牛要放入的魚就需要...