nyoj 523 亡命逃竄 BFS

2021-09-08 22:28:02 字數 1781 閱讀 5906

時間限制:

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

簡單的3維廣搜

**:

#include #include #include #include using namespace std;

#define m 55

struct node;

node st, en;

int map[m][m][m];

bool vis[m][m][m];

int a, b, c, t;

const int dx = ;

const int dy = ;

const int dz = ;

int limit(node s)

if(limit(temp)&&!vis[temp.x][temp.y][temp.z])}}

if(res > t) return -1;

return res;

}int main()

if(map[a-1][b-1][c-1] == 1)

int ans = bfs();

printf("%d\n", ans);

}return 0;

}

NYOJ 523亡命逃竄(搜尋)

題目連線 簡單的搜尋。include include include include includeusing namespace std define clr arr,v memset arr,v,sizeof arr struct point mid struct point que 50000...

5 23 幣值轉換

輸入乙個整數 位數不超過9位 代表乙個人民幣值 單位為元 請轉換成財務要求的大寫中文格式。如23108元,轉換後變成 貳萬叄仟壹百零捌 元。為了簡化輸出,用小寫英文本母a j順序代表大寫數字0 9,用s b q w y分別代表拾 百 仟 萬 億。於是23108元應被轉換輸出為 cwdqbbai 元。...

題目523 亡命逃竄

從前有個叫hck的騎士,為了救我們美麗的公主,潛入魔王的老巢,夠英雄吧。不過英雄不是這麼好當的。這個可憐的娃被魔王抓住了,倍受折磨,生死一線。有一天魔王出去約會了,這可是乙個千載難逢的逃命機會。你現在的任務就是判斷一下這個英雄未遂的孩子能不能在魔王回來之前逃出魔王的城堡,成功逃生,最後迎娶我們美麗的...