你現在被困在乙個三維地牢中,需要找到最快脫離的出路!
地牢由若干個單位立方體組成,其中部分不含岩石障礙可以直接通過,部分包含岩石障礙無法通過。
向北,向南,向東,向西,向上或向下移動乙個單元距離均需要一分鐘。
你不能沿對角線移動,迷宮邊界都是堅硬的岩石,你不能走出邊界範圍。
請問,你有可能逃脫嗎?
如果可以,需要多長時間?
輸入格式
輸入包含多組測試資料。
每組資料第一行包含三個整數 l,r,c 分別表示地牢層數,以及每一層地牢的行數和列數。
接下來是 l 個 r 行 c 列的字元矩陣,用來表示每一層地牢的具體狀況。
每個字元用來描述乙個地牢單元的具體狀況。
其中, 充滿岩石障礙的單元格用」#」表示,不含障礙的空單元格用」.」表示,你的起始位置用」s」表示,終點用」e」表示。
每乙個字元矩陣後面都會包含乙個空行。
當輸入一行為」0 0 0」時,表示輸入終止。
輸出格式
每組資料輸出乙個結果,每個結果佔一行。
如果能夠逃脫地牢,則輸出」escaped in x minute(s).」,其中x為逃脫所需最短時間。
資料範圍
1≤l,r,c≤100
輸入樣例:
3 4 5
s….###.
.##…
###.#
##.##
##…
#.###
####e
1 3 3
s###e#
#include
#include
#include
#include
using
namespace std;
const
int n =
110;
struct point
;int l, r, c;
char g[n]
[n][n]
;point q[n * n * n]
;int dist[n]
[n][n]
;int dx[6]
=;int dy[6]
=;int dz[6]
=;intbfs
(point start, point end);}
}return-1
;}intmain()
;else
if(c ==
'e') end =;}
}int distance =
bfs(start, end);if
(distance ==-1
)puts()
;else
printf
("escaped in %d minute(s).\n"
, distance);}
return0;
}
bfs 三維標記
做訓練賽遇到的一道題,感覺很好。大致題意 現在給你乙個地圖n m,代表是空格子,代表是有柱子阻隔。現在你站在a點,要走到b點。走的時候要遵循乙個規則 必須走相鄰的格仔,如果相鄰的格仔為有柱子格仔,那麼這個格仔與有柱子的格仔相鄰的邊 如果乙個有柱子的格仔的兩條或者多條不同的邊 了,那麼這個格仔就會變成...
腫瘤診斷 三維BFS
腫瘤診斷 在診斷腫瘤疾病時,計算腫瘤體積是很重要的一環。給定病灶掃瞄切片中標註出的疑似腫瘤區域,請你計算腫瘤的體積。輸入第一行給出4個正整數 mm nn ll tt,其中mm和nn是每張切片的尺寸 即每張切片是乙個m times nm n的畫素矩陣。最大解析度是1286 times 1281286 ...
POJ 2251(基礎三維BFS)
poj2251 在乙個三維格仔裡面,有兩種格仔,一種可以走一種不能。給定乙個起點和終點問從起點最少走多少步可以到達終點。很基礎的一道bfs,在這裡記錄一下以後處理類似的問題乙個技巧 通過xx yy zz陣列實現乙個人迴圈將乙個節點周圍的元素入隊。include include include inc...