迷宮最短路徑問題

2022-07-31 13:00:16 字數 924 閱讀 9021

問題描述:給定乙個迷宮和乙個起點乙個終點,求起點到終點的最短路徑長度。

sample input

(說明:5行5列的迷宮,『#』為牆,『.』為路,起點為(0,3), 終點為(4,4))

sample output

(若不可達輸出-1)

解答:用bfs的方法,借助乙個佇列實現。

1 #include2 #include3 #include4

using

namespace

std;56

char map[100][100];7

intn, m;89

struct

point

12};

1314

struct

node

18};

1920

bool isvalid(const point &p)

2324

int mindistance(const point &s, const point &d) , , , };

26bool visited[100][100

];27 memset(visited, false, sizeof

(visited));

28 queueq;

29 q.push(node(s, 0

));30 visited[s.x][s.y] = true;31

while (!q.empty())

36q.pop();

37for (int i = 0; i < 4; ++i) 43}

44}45return -1;46

}4748void buildmap(void

) 54}55

}5657int main(void

)

迷宮問題 最短路徑問題

給定乙個 n nn n 的二維陣列,如下所示 int maze 5 5 它表示乙個迷宮,其中的1表示牆壁,0表示可以走的路,只能橫著走或豎著走,不能斜著走,要求程式設計序找出從左上角到右下角的最短路線。資料保證至少存在一條從左上角走到右下角的路徑。輸入格式 第一行包含整數 n。接下來 nn 行,每行...

迷宮最短路徑

include include using namespace std const int max n 100,max m 100 const int inf 100000000 使用pair表示狀態時,使用typedef會更加方便一些 typedef pairp 輸入 char maze max ...

迷宮最短路徑

問題描述 小a同學現在被困在了乙個迷宮裡面,他很想從迷宮中走出來,他可以向上 向下 向左 向右移動 每移動一格都需要花費1秒的時間,不能夠走到邊界之外。假設小a現在的位置在s,迷宮的出口在e,迷宮可能有多個出口。問小a想要走到迷宮出口最少需要花費多少秒?並輸出從起點到最近出口的路徑。任務要求 1 迷...