資訊學奧賽一本通 1255 迷宮問題(evd)

2021-10-10 13:17:56 字數 1315 閱讀 9827

【題目描述】

定義乙個二維陣列:

int maze[5][5] = ;

它表示乙個迷宮,其中的1表示牆壁,0表示可以走的路,只能橫著走或豎著走,不能斜著走,要求程式設計序找出從左上角到右下角的最短路線。

【輸入】

乙個5 × 5的二維陣列,表示乙個迷宮。資料保證有唯一解。

【輸出】

左上角到右下角的最短路徑,格式如樣例所示。

【輸入樣例】

0 1 0 0 0

0 1 0 1 0

0 0 0 0 0

0 1 1 1 0

0 0 0 1 0

【輸出樣例】

(0, 0)

(1, 0)

(2, 0)

(2, 1)

(2, 2)

(2, 3)

(2, 4)

(3, 4)

(4, 4)

【心得】加了個記憶路徑而已,再來一次搜尋!

【ac**】

#include

#include

#include

#include

using

namespace std;

const

int n=5;

int a[n+1]

[n+1

],q[

(n+1)*

(n+1)]

[2],dir[4]

[2]=

,,,}

;int

main()

}int head=

0,tail=1;

q[head][0

]=1;

q[head][1

]=1;

a[q[head][0

]][q[head][1

]]=1

;while

(head} head++;}

head=

0,tail=1;

memset

(q,0

,sizeof

(q))

; q[head][0

]=n;

q[head][1

]=n;

while

(head} head++;}

for(

int i=tail-

1;i>=

0;i--

)printf

("(%d, %d)\n"

,q[i][0

]-1,q[i][1

]-1)

;return0;

}

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

題目描述 一天extense在森林裡探險的時候不小心走入了乙個迷宮,迷宮可以看成是由n n的格點組成,每個格點只有2種狀態,和 前者表示可以通行後者表示不能通行。同時當extense處在某個格點時,他只能移動到東南西北 或者說上下左右 四個方向之一的相鄰格點上,extense想要從點a走到點b,問在...

資訊學奧賽一本通C 語言 1215 迷宮

題目描述 一天extense在森林裡探險的時候不小心走入了乙個迷宮,迷宮可以看成是由n n的格點組成,每個格點只有2種狀態,和 前者表示可以通行後者表示不能通行。同時當extense處在某個格點時,他只能移動到東南西北 或者說上下左右 四個方向之一的相鄰格點上,extense想要從點a走到點b,問在...

資訊學奧賽一本通 小球(drop)

許多的小球乙個乙個的從一棵滿二叉樹上掉下來組成fbt full binary tree,滿二叉樹 每一時間,乙個正在下降的球第乙個訪問的是非葉子節點。然後繼續下降時,或者走右子樹,或者走左子樹,直到訪問到葉子節點。決定球運動方向的是每個節點的布林值。最初,所有的節點都是false,當訪問到乙個節點時...