think:
1反思:思考題意不全面,其一佇列中忘記當前結點出對,其二未涵蓋達不到p點未輸出no的情況,其三經過傳送門時間不變控制條件錯誤,其四未考慮到前後兩層都是傳送門的情況,其五未考慮到傳送到另一層時另一層對應結點已訪問過
2收穫:
1>加深理解雙層bfs
2>鍛鍊思考問題的全面性
3感謝參考部落格博主的啟迪——建議參考部落格鏈結
h - a計畫
可憐的公主在一次次被魔王擄走一次次被騎士們救回來之後,而今,不幸的她再一次面臨生命的考驗。魔王已經發出訊息說將在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
以下為accepted**
#include
#include
using
namespace
std;
struct node link[144], a, b;
int n, m, t, op, tp, v[2][14][14];
int jk[4][2] = , , , };
char st[2][14][14];
void bfs(int x, int y, int z);
bool judge(int dx, int dy);
int main()
}bfs(0, 0, 0);
}return0;}
void bfs(int x, int y, int z)
}for(i = 0; i < 4; i++)
if(st[b.z][b.x][b.y] != '*' && st[b.z][b.x][b.y] != '#' && v[b.z][b.x][b.y] == 0)}}
op++;
}if(!flag)
printf("no\n");
}bool judge(int dx, int dy)
HDU 2102 A計畫 雙層BFS
problem description 可憐的公主在一次次被魔王擄走一次次被騎士們救回來之後,而今,不幸的她再一次面臨生命的考驗。魔王已經發出訊息說將在t時刻吃掉公主,因為他聽信謠言說吃公主的肉也能長生不老。年邁的國王正是心急如焚,告招天下勇士來拯救公主。不過公主早已習以為常,她深信智勇的騎士lj肯...
hdu 2012 A計畫 雙層bfs
d a計畫 time limit 1000msmemory limit 32768kb64bit io format i64d i64u submit status description 可憐的公主在一次次被魔王擄走一次次被騎士們救回來之後,而今,不幸的她再一次面臨生命的考驗。魔王已經發出消 息說...
HDU 2102 A計畫(雙層BFS)
題目 可憐的公主在一次次被魔王擄走一次次被騎士們救回來之後,而今,不幸的她再一次面臨生命的考驗。魔王已經發出訊息說將在t時刻吃掉公主,因為他聽信謠言說吃公主的肉也能長生不老。年邁的國王正是心急如焚,告招天下勇士來拯救公主。不過公主早已習以為常,她深信智勇的騎士lj肯定能將她救出。現據密探所報,公主被...