M 魔戒(BFS 四維陣列)

2021-10-25 09:21:36 字數 1699 閱讀 1945

description

藍色空間號和萬有引力號進入了四維水窪,發現了四維物體–魔戒。

這裡我們把飛船和魔戒都抽象為四維空間中的乙個點,分別標為 「s」 和 「e」。空間中可能存在障礙物,標為 「#」,其他為可以通過的位置。

現在他們想要盡快到達魔戒進行探索,你能幫他們算出最小時間是最少嗎?我們認為飛船每秒只能沿某個座標軸方向移動乙個單位,且不能越出四維空間。

input

輸入資料有多組(資料組數不超過 30),到 eof 結束。

每組輸入 4 個數 x, y, z, w 代表四維空間的尺寸(1 <= x, y, z, w <= 30)。

接下來的空間地圖輸入按照 x, y, z, w 軸的順序依次給出,你只要按照下面的座標關係迴圈讀入即可。

for

0, x-

1for

0, y-

1for

0, z-

1for

0, w-

1

保證 「s」 和 「e」 唯一。

output

對於每組資料,輸出一行,到達魔戒所需的最短時間。

如果無法到達,輸出 「wtf」(不包括引號)。

sample

input

222

2...s

..#.#.

.e.#..

2222

...s#.

##e.

.##.

..

output

1

3

答案:

#include

#include

#define ll long long

const

int n =35;

using

namespace std;

int a,b,c,d;

char mp[55]

[55][

55][55

];bool vis[55]

[55][

55][55

];int dirx=

;int diry=

;int dirz=

;int dirw=

;int flag;

int aa,bb,cc,dd;

struct node

;int

judge

(int x,

int y,

int z,

int w)

void

bfs(

int aa,

int bb,

int cc,

int dd)

for(

int i=

0; i<

8; i++)}

}if(flag)

printf (

"wtf\n");

}int main ()}

getchar()

;}}}

memset

(vis,0,

sizeof

(vis));

bfs(aa,bb,cc,dd);}

return0;

}

M 魔戒(四維BFS)

m 魔戒 description 藍色空間號和萬有引力號進入了四維水窪,發現了四維物體 魔戒。這裡我們把飛船和魔戒都抽象為四維空間中的乙個點,分別標為 s 和 e 空間中可能存在障礙物,標為 其他為可以通過的位置。現在他們想要盡快到達魔戒進行探索,你能幫他們算出最小時間是最少嗎?我們認為飛船每秒只能...

魔戒(BFS 四維陣列)

description 藍色空間號和萬有引力號進入了四維水窪,發現了四維物體 魔戒。這裡我們把飛船和魔戒都抽象為四維空間中的乙個點,分別標為 s 和 e 空間中可能存在障礙物,標為 其他為可以通過的位置。現在他們想要盡快到達魔戒進行探索,你能幫他們算出最小時間是最少嗎?我們認為飛船每秒只能沿某個座標...

四維陣列 遊戲

小g正在玩一款遊戲,遊戲地圖上有n個點 1到n編號 這些點之間有m條無向邊 沒有重邊 一次系統重新整理會在某個時刻在某點重新整理出一定數量的怪物,系統重新整理出來的怪物只會存在1秒,下一秒就會消失。如果那個時刻小g正好在那個點,那麼小g可以秒殺 秒殺所用時間忽略不計,下同 這個點上的所有怪物。另外,...