杭電oj 2102 A計畫

2021-09-27 07:49:25 字數 1735 閱讀 4453

problem description

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

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

input

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

output

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

sample input

1

5 5 14

s*#*.

.#...

.....

****.

...#.

..*.p

#.*..

***..

...*.

*.#..

sample output

yes
這道題其實就是賊經典的bfs,只不過多了乙個傳輸空間,其實相當於遇到#的時候多了乙個鄰接點,需要將此情況單獨列出來。(如果不會bfs建議還是了解一下其思想,不建議直接看**,思想才是最重要的)

**注意:**①佇列記得清空,因為不只是一組測試的資料

②關於bfs函式的結果(判斷何時輸出yes),如果此路根本不通,也就是根本無法救出公主,這個時候也要考慮到,不然結果一定會wa

下面附上ac**:

#include

#include

#include

#include

using

namespace std;

int ex,ey,ez,tx,ty,tz,n,m,t,op;

int next1[4]

[2]=

,,,}

;char tu[2]

[12][

12];int bj[2]

[12][

12];struct node

;void

bfs(

int x,

int y,

int z)

for(

int i=

0; i<

4; i++)}

if( tu[pre.z]

[lst.x]

[lst.y]

=='.'

||tu[pre.z]

[lst.x]

[lst.y]

=='p'

)//當前點可以走}}

}int

main()

} op=0;

bfs(0,

0,0)

;if(op==1)

printf

("yes\n");

else

printf

("no\n");

}}

杭電OJ測試資料探勘計畫

前言 首先,hduoj已經出現多年,上面的大部分經典題目已經被被人咀嚼透爛了,也能通過搜尋引擎搜尋到許多現成的 如果有測試資料,那麼就能拿自己的程式的輸出與前人的程式的輸出進行比對,找出問題所在。然後,對於沒有被別人嚼爛的題目,也可以借助測試資料,更好地分析程式問題所在,不至於僅僅過了簡單的samp...

飯卡 杭電oj

解題思路就是沒有5元的直接輸出 大於5元的要用5元貪心價值最大的 減去5元後的錢要最優即動態規劃中的01揹包 include include include using namespace std int c 1005 1005 int max int a,int b int main m1 m m...

杭電oj 迷瘴

通過懸崖的yifenfei,又面臨著幽谷的考驗 幽谷周圍瘴氣瀰漫,靜的可怕,隱約可見地上堆滿了骷髏。由於此處長年不見天日,導致空氣中布滿了毒素,一旦吸入體內,便會全身潰爛而死。幸好yifenfei早有防備,提前備好了解藥材料 各種濃度的萬能藥水 現在只需按照配置成不同比例的濃度。現已知yifenfe...