2335 拯救雅典娜

2022-06-03 01:39:09 字數 1615 閱讀 3701

時間限制:1 秒

記憶體限制:32 兆

題目描述

悲劇的雅典娜又被壞蛋抓走了!於是乎,正在馬爾地夫度假的青銅五小強又要加班了-_-!

這次雅典娜被抓到了乙個迷宮中,這個迷宮是方形的,且只有一層,由n*m個完全一樣的正方形房間組成。

青銅五小強來到了房間s,也就是他們的起始點,雅典娜被關在房間e。而其他的房間,有些無法進入。小強們只能向前後左右四個方向行進,他們每到達乙個新的房間就會消耗1個單位的時間。

已知雅典娜只能堅持t個單位的時間,時間一過立馬掛掉,現在給你迷宮的布局、青銅五小強的起始位置s、雅典娜被關的位置e,請你判斷小強們是否能夠在雅典娜掛掉之前找到她。

注意:我們規定小強們到達起始位置時已經消耗了1個單位的時間了。

輸入格式

輸入包含多組測試資料。

每組輸入的第一行為3個整數n,m,t(0<=n,m<=10,1<=t<=20),t表示雅典娜能夠堅持的時間,n和m不會同時為1,當n和m中有乙個為0或都為0時,輸入結束。

接下來n行,每行輸入m個字元,每個字元表示乙個房間的情況:

『.』:表示此房間可以通過。

『#』:表示此房間不可以通過,需要繞道。

『s』:表示青銅五小強的其實位置。

『e』:表示雅典娜被關的位置。

題目保證每組輸入有且僅有乙個s和e。

輸出對於每組輸入,如果能夠在雅典娜掛掉之前找到她,輸出「oh yes!!!」,否則輸出「tragedy!!!」。

樣例輸入

4 4 10

....

....

....

s##e

3 4 20

.#e.

.s#.

.#..

3 0 5

樣例輸出

oh yes!!!

tragedy!!!

1

//簡單的dfs,注意有搜尋深度的限制(t)。

2 #include3 #include

4const

int di[4]=,dj[4]=;

5int

sx,sy,n,m,t,i,j;

6bool mark[110][110

],ans;

7char map[110][110];8

void tr(int t,int pi,int

pj)9

18else tr(t+1

,ti,tj);

19if(ans==true)return

;20 mark[ti][tj]=false;21

}2223}

24}25int

main()

2636}37

}38}39 mark[sx][sy]=true

;40 ans=false

;41 tr(1

,sx,sy);

42 printf("

%s\n

",ans?"

oh yes!!!

":"tragedy!!!");

43}44return0;

45 }

HDU 2335 Containers(暴力列舉)

題意 n個40x8的箱子,要求建乙個矩形場地來放這些箱子,箱子間有已知大小的間隙,最高可以放5層。求場地的最小面積,在此基礎上盡量方。思路 設場地x列,y行,那麼x y n 4 5 所以x不會超過sqrt n 所以列舉x求y就行了。比賽的時候考慮到隨著x的增加,答案先變小後變大,所以三分的,但是樣例...

openjudge 拯救行動

描述 公主被惡人抓走,被關押在牢房的某個地方。牢房用n m n,m 200 的矩陣來表示。矩陣中的每項可以代表道路 牆壁 和守衛 x 英勇的騎士 r 決定孤身一人去拯救公主 a 我們假設拯救成功的表示是 騎士到達了公主所在的位置 由於在通往公主所在位置的道路中可能遇到守衛,騎士一旦遇到守衛,必須殺死...

openjudge 拯救行動

總時間限制 10000ms 記憶體限制 65536kb 描述 公主被惡人抓走,被關押在牢房的某個地方。牢房用n m n,m 200 的矩陣來表示。矩陣中的每項可以代表道路 牆壁 和守衛 x 英勇的騎士 r 決定孤身一人去拯救公主 a 我們假設拯救成功的表示是 騎士到達了公主所在的位置 由於在通往公主...