資訊學奧賽一本通 1215 迷宮 evd

2021-10-24 19:46:26 字數 1142 閱讀 7493

【題目描述】

一天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,當訪問到乙個節點時...