A計畫 三維dfs

2021-09-13 16:21:12 字數 1353 閱讀 3512

可憐的公主在一次次被魔王擄走一次次被騎士們救回來之後,而今,不幸的她再一次面臨生命的考驗。魔王已經發出訊息說將在t時刻吃掉公主,因為他聽信謠言說吃公主的肉也能長生不老。年邁的國王正是心急如焚,告招天下勇士來拯救公主。不過公主早已習以為常,她深信智勇的騎士lj肯定能將她救出。 

現據密探所報,公主被關在乙個兩層的迷宮裡,迷宮的入口是s(0,0,0),公主的位置用p表示,時空傳輸機用#表示,牆用*表示,平地用.表示。騎士們一進入時空傳輸機就會被轉到另一層的相對位置,但如果被轉到的位置是牆的話,那騎士們就會被撞死。騎士們在一層中只能前後左右移動,每移動一格花1時刻。層間的移動只能通過時空傳輸機,且不需要任何時間。

input

輸入的第一行c表示共有c個測試資料,每個測試資料的前一行有三個整數n,m,t。 n,m迷宮的大小n*m(1 <= n,m <=10)。t如上所意。接下去的前n*m表示迷宮的第一層的布置情況,後n*m表示迷宮第二層的布置情況。

output

如果騎士們能夠在t時刻能找到公主就輸出「yes」,否則輸出「no」。

sample input

1

5 5 14

s*#*.

.#...

.....

****.

...#.

..*.p

#.*..

***..

...*.

*.#..

sample output

yes
這個題搜的話也不難想象,只不過是三維的,我的**主要是對p點的判斷,第一次wa忘了『p』也可以走,後兩次是忘了,在傳送的時候對『p'點的判斷,蠢啊

**:

#include#include#include#include#include#include#include#include#includetypedef long long ll;

using namespace std;

char map[3][15][15];

int vis[3][15][15];

int dir[4][2]=,,,};

int n,m,time;

int ex,ey,ez;

int flag;

bool check(int x,int y)

for(int t=0;tfor(int t=0;tif(map[0][t][j]=='s')

}}

for(int t=0;tif(map[1][t][j]=='s')

}} vis[sz][sx][sy]=1;

dfs(sz,sx,sy,0);

if(flag==1)

else

} return 0;

}

HDU 2102 A計畫(三維dfs 剪枝)

可憐的公主在一次次被魔王擄走一次次被騎士們救回來之後,而今,不幸的她再一次面臨生命的考驗。魔王已經發出訊息說將在t時刻吃掉公主,因為他聽信謠言說吃公主的肉也能長生不老。年邁的國王正是心急如焚,告招天下勇士來拯救公主。不過公主早已習以為常,她深信智勇的騎士lj肯定能將她救出。現據密探所報,公主被關在乙...

三維陣列怎麼排列 DFS構造全排列

這一節課,我們利用深度優先搜尋來解決一下全排列的問題。假如求1,2,3的全排列。考慮圖 6.5 共有6個葉子結點,如果從根結點開始,沿箭頭方向,向任意乙個葉子結點前進,列印沿途所經過的所有結點的值,就是乙個全排列。回憶我們在資料結構裡曾經提到過的多叉樹的遍歷,這並不是一件很困難的事情。但還有兩個問題...

三維座標 偏轉 天津三維掃瞄

三維掃瞄的概念及儀器種類 三維掃瞄是指集光 機 電和計算機技術於一體的高新技術,主要用於對物體空間外形和結構及色彩進行掃瞄,以獲得物體表面的空間座標。它的重要意義在於能夠將實物的立體資訊轉換為計算機能直接處理的數碼訊號,為實物數位化提供了相當方便快捷的手段。三維掃瞄技術能實現非接觸測量,且具有速度快...