【題目描述】
定義乙個二維陣列:
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,當訪問到乙個節點時...