迷宮輸出路徑

2021-10-03 06:39:42 字數 1338 閱讀 5418

定義乙個二維陣列:

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表示為不可通過的牆。問從左上角走到右下角的最短路線,並且輸出路徑。題目保證只有一組解,所以不用考慮字典序啥的 題解 據說,題目真的只有一組解,你只要複製樣例中的輸出然後提交就能過。雖然但是,還是要正兒八經做題的,輸出路徑最近常幹了,...