定義乙個二維陣列:
int maze[5][5] = ;
它表示乙個迷宮,其中的1表示牆壁,0表示可以走的路,只能橫著走或豎著走,不能斜著走,要求程式設計序找出從起點到終點的最短路線。
input
m和n,表示乙個m*n 的二維陣列,表示乙個迷宮。sx,sy,p,q分別表示起點和終點的座標資料保證有唯一解。
output
左上角到右下角的最短路徑,格式如樣例所示。
sample input
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
sample output
(0, 0)
(1, 0)
(2, 0)
(2, 1)
(2, 2)
(2, 3)
(2, 4)
(3, 4)
(4, 4)
#include
//廣度搜尋演算法
int map[51]
[51],book[10]
[10];
int dx=
;int dy=
;struct quearr[
2501];
void
print
(int l)
//遞迴逆序列印下標為l的點的座標
}int
main
(void
)printf
("(%d, %d)\n"
,sx,sy)
; head =1;
tail =1;
arr[tail]
.x =0;
arr[tail]
.y =0;
arr[tail]
.s =0;
arr[tail]
.f =-1
;//下標為tail的父親節點的編號
tail++
; book[0]
[0]=
1;while
(headif(nx==p&&ny==q)}if
(k==1)
break
; head++;}
printf
("(%d, %d)\n"
,p,q)
;printf
("共需 %d 步"
,arr[tail-1]
.s);
return0;
}
迷宮問題(輸出路徑)
迷宮問題 time limit 1000 ms memory limit 65536 kb 64bit io format i64d i64u description 定義乙個二維陣列 int maze 5 5 它表示乙個迷宮,其中的1表示牆壁,0表示可以走的路,只能橫著走或豎著走,不能斜著走,要求...
OJ 4127 迷宮問題 遞迴輸出路徑
定義乙個二維陣列 int maze 5 5 它表示乙個迷宮,其中的1表示牆壁,0表示可以走的路,只能橫著走或豎著走,不能斜著走,要求程式設計序找出從左上角到右下角的最短路線。輸入乙個5 5的二維陣列,表示乙個迷宮。資料保證有唯一解。輸出左上角到右下角的最短路徑,格式如樣例所示。樣例輸入0 1 0 0...
POJ3984 迷宮問題 簡單BFS 輸出路徑
迷宮問題 題意 在乙個5 5的迷宮中,數字0表示為可通過的路,數字1表示為不可通過的牆。問從左上角走到右下角的最短路線,並且輸出路徑。題目保證只有一組解,所以不用考慮字典序啥的 題解 據說,題目真的只有一組解,你只要複製樣例中的輸出然後提交就能過。雖然但是,還是要正兒八經做題的,輸出路徑最近常幹了,...