時間限制: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 我們假設拯救成功的表示是 騎士到達了公主所在的位置 由於在通往公主...