思路:這裡說的第幾層實際上就是三維陣列,map[x][y][z],然後可以朝六個方向移動的話,在map[1]這層可以移動上下左右,x、y變化,然後還可以從map[1][x][y]到map[2][x][y],移動層次。然後其他的就bfs廣搜就ok了。
時間限制:
1000 ms | 記憶體限制:
65535 kb
難度:4 描述
從前有個叫hck的騎士,為了救我們美麗的公主,潛入魔王的老巢,夠英雄吧。不過英雄不是這麼好當的。這個可憐的娃被魔王抓住了,倍受折磨,生死一線。有一天魔王出去約會了,這可是乙個千載難逢的逃命機會。你現在的任務就是判斷一下這個英雄未遂的孩子能不能在魔王回來之前逃出魔王的城堡,成功逃生,最後迎娶我們美麗的公主。
魔王住在乙個城堡裡,城堡是乙個a*b*c的立方體,可以被表示成a個b*c的矩陣,剛開始hck被關在(0,0,0)的位置,離開城堡的門在(a-1,b-1,c-1)的位置,現在知道魔王將在t分鐘後回到城堡,hck每分鐘能從乙個座標走到相鄰的六個座標中的其中乙個.現在給你城堡的地圖,請你計算出hck能否在魔王回來前離開城堡(只要走到出口就算離開城堡,如果走到出口的時候魔王剛好回來也算逃亡成功),如果可以請輸出需要多少分鐘才能離開,如果不能則輸出-1.
如圖所示,輸入資料中的第0塊的最左上角是hck被關的地方,第a-1塊的最右下角是城堡的出口。按照圖中紅色箭頭方向移動每一層以構成整個城堡。
輸入
輸入資料的第一行是乙個正整數k,表明測試資料的數量. 每組測試資料的第一行是四個正整數a,b,c和t(1<=a,b,c<=50,1<=t<=1000),它們分別代表城堡的大小和魔王回來的時間.
然後是a塊輸入資料(先是第0塊,然後是第1塊,第2塊......),每塊輸入資料有b行,每行有c個正整數,代表迷宮的布局,其中0代表路,1代表牆.
(如果對輸入描述不清楚,可以參考上面的迷宮描述,它表示的就是上圖中的迷宮)
輸出對於每組測試資料,如果hck能夠在魔王回來前離開城堡,那麼請輸出他最少需要多少分鐘,否則輸出-1.
樣例輸入
2樣例輸出3 2 2 10
0 10 0
1 11 0
0 00 1
3 3 4 20
0 1 1 1
0 0 1 1
0 1 1 1
1 1 1 1
1 0 0 1
0 1 1 1
0 0 0 0
0 1 1 0
0 1 1 0
-1上**:**比較爛11
#include#include #include #include #include#define queuelen 2500001
//資料結構的定義
typedef struct
data;
typedef struct
sqtype;
data data[queuelen];
//佇列的初始化
sqtype *sqtypeinit()
else }
//判斷空佇列
int sqtypeisempty(sqtype *q)
//入隊
int insqtype(sqtype *q,data a)
else }
//出佇列
int outsqtype(sqtype *q,data &a)
else
}//讀取節點的資料
//計算佇列的長度
int map[50][50][1000];
bool flag[50][50][1000]=;
int a,b,c,t;
int bfs(int z,int x,int y,int zz,int zx,int zy)
int dir[6][3]=,,,,,};
;flag[z][x][y]=1;
insqtype(migong,aa);
while(!sqtypeisempty(migong))
{outsqtype(migong,aa);
for(int i=0;i<6;i++)
{ int nz=aa.z+dir[i][0];
int nx=aa.x+dir[i][1];
int ny=aa.y+dir[i][2];
if(!(nx>=0&&nx=0&&ny=0&&nz=0&&nx=0&&ny=0&&nz=0&&nx=0&&ny=0&&nz
南陽oj 素數
描述 走進世博園某資訊通訊館,參觀者將獲得前所未有的尖端互動體驗,一場充滿創想和喜悅的資訊通訊互動體驗秀將以全新形式呈現,從觀眾踏入展館的第一步起,就將與手持終端密不可分,人類未來夢想的驚喜從參觀者的掌上展開。在等候區的夢想花園中,參觀者便開始了他們奇妙的體驗之旅,等待中的遊客可利用手機等終端參與互...
素數 南陽OJ
時間限制 3000 ms 記憶體限制 65535 kb 難度 1 描述 走進世博園某資訊通訊館,參觀者將獲得前所未有的尖端互動體驗,一場充滿創想和喜悅的資訊通訊互動體驗秀將以全新形式呈現,從觀眾踏入展館的第一步起,就將與手持終端密不可分,人類未來夢想的驚喜從參觀者的掌上展開。在等候區的夢想花園中,參...
南陽oj 房間安排
組委會請求dr.kong來完成這個任務,對這些定單進行合理安排,使得滿足這些定單要求的房間數最少。假設 某個定單上的遊客一旦被安排到某房間,在他預定住宿的期間內是不換房間的。為了簡化描述,定單上的開始住宿時間為距離現在的第幾天。例如,定單為 10,30,5 表示遊客要求使用10個房間,第30天開始連...