A計畫 HDU 2102 搜尋

2021-08-27 09:04:38 字數 1360 閱讀 6166

problem description

可憐的公主在一次次被魔王擄走一次次被騎士們救回來之後,而今,不幸的她再一次面臨生命的考驗。魔王已經發出訊息說將在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 output

yes細節有點多 不過之前做過乙個三層的 所以這個二層的比較簡單

要說的都在**裡面了 

#include#include#include#include#include#define clr(a,b) memset(a,b,sizeof(a))

using namespace std;

char map1[12][12],map2[12][12];

int n,m,t,visit[12][12][3];

int dx=;

int dy=;

struct node

;int bfs(node start,node end)

} else//扁鵲三連:沒有救了 人被吃了 等死吧

for(int i=0;i<4;i++)

if(in.loc==1)

if(!visit[ne.x][ne.y][ne.loc]&&ne.x=0&&ne.y>=0&&ne.y>c;

while(c--)

for(int i=0;ifor(int i=0;iif(map1[i][j]=='p')

if(map2[i][j]=='p')

}} start.loc=0;

start.x=0;

start.y=0;

start.step=0;

int ans=bfs(start,end);

if(ans) cout<<"yes"

}

練習搜尋之三維迷宮(HDU 2102)

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

ACM 搜尋 hdu 2102 A計畫

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

bfs模板 三維迷宮hdu2102

有兩個地圖,代表傳送門,可以從乙個地圖到另乙個地圖的對應位置。如果對應位置是 就會死。代表牆,不能走。代表路,從 0,0,0 開始,找到p,問能否在時間內找到 bfs的模式去搜尋,但是遇到 傳送,這裡需要預處理地圖 include include include include includeusi...