【題目描述】
一天extense在森林裡探險的時候不小心走入了乙個迷宮,迷宮可以看成是由n * n的格點組成,每個格點只有2種狀態,.和#,前者表示可以通行後者表示不能通行。同時當extense處在某個格點時,他只能移動到東南西北(或者說上下左右)四個方向之一的相鄰格點上,extense想要從點a走到點b,問在不走出迷宮的情況下能不能辦到。如果起點或者終點有乙個不能通行(為#),則看成無法辦到。
【輸入】
第1行是測試資料的組數k,後面跟著k組輸入。每組測試資料的第1行是乙個正整數n (1 ≤ n ≤ 100),表示迷宮的規模是n * n的。接下來是乙個n * n的矩陣,矩陣中的元素為.或者#。再接下來一行是4個整數ha, la, hb, lb,描述a處在第ha行, 第la列,b處在第hb行, 第lb列。注意到ha, la, hb, lb全部是從0開始計數的。
【輸出】
k行,每行輸出對應乙個輸入。能辦到則輸出「yes」,否則輸出「no」。
【輸入樣例】23
.##…#
#…0 0 2 25…
###.#
…#…###…
…#.0 0 4 0
【輸出樣例】
yesno
【心得】如果有解本題的關鍵在於當走到終點後如何及時退出搜尋
【ac**】
#include
#include
#include
#include
using
namespace std;
char s[
105]
[105];
int n,ha,la,hb,lb,dir[4]
[2]=
,,,}
,flag;
//flag標記搜尋完畢後是否能到達終點
void
dfs(
int ha,
int la)
if(flag)
return
;for
(int i=
0;i<
4;i++)}
}int
main()
if(flag==
0) cout<<
"no"
<}return0;
}```
資訊學奧賽一本通C 語言 1215 迷宮
題目描述 一天extense在森林裡探險的時候不小心走入了乙個迷宮,迷宮可以看成是由n n的格點組成,每個格點只有2種狀態,和 前者表示可以通行後者表示不能通行。同時當extense處在某個格點時,他只能移動到東南西北 或者說上下左右 四個方向之一的相鄰格點上,extense想要從點a走到點b,問在...
資訊學奧賽一本通 1255 迷宮問題(evd)
題目描述 定義乙個二維陣列 int maze 5 5 它表示乙個迷宮,其中的1表示牆壁,0表示可以走的路,只能橫著走或豎著走,不能斜著走,要求程式設計序找出從左上角到右下角的最短路線。輸入 乙個5 5的二維陣列,表示乙個迷宮。資料保證有唯一解。輸出 左上角到右下角的最短路徑,格式如樣例所示。輸入樣例...
資訊學奧賽一本通 小球(drop)
許多的小球乙個乙個的從一棵滿二叉樹上掉下來組成fbt full binary tree,滿二叉樹 每一時間,乙個正在下降的球第乙個訪問的是非葉子節點。然後繼續下降時,或者走右子樹,或者走左子樹,直到訪問到葉子節點。決定球運動方向的是每個節點的布林值。最初,所有的節點都是false,當訪問到乙個節點時...