poj 迷宮問題(路徑記錄)(DFS,BFS)

2021-07-25 07:57:19 字數 1148 閱讀 6593

迷宮問題

description

定義乙個二維陣列:

int maze[5][5] = ;

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

input

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

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)

**1(dfs):

#include#include#include#define inf 0x3f3f3f3f

using namespace std;

int a[5][5],ans=inf,k;

struct node

b[100];

void mycopy(stacka)//路徑反轉

}int to[4][2]= ;

stacks;//儲存路徑

void dfs(int x,int y,int step)

}s.pop();

}int main()

**2(bfs):

#includeint a[5][5],head=0,tail=1;

struct node

b[100];

void print(int i)

}int to[4][2]= ;

void bfs(int x,int y)

if(m==4&&n==4)

print(head);

}head++;

}}int main()

POJ 3984 迷宮問題 (路徑記錄)

k 迷宮問題 crawling in process.crawling failed time limit 1000msmemory limit 65536kb64bit io format i64d i64u submit status description 定義乙個二維陣列 int maze ...

POJ 3984 迷宮問題 路徑記錄

題目鏈結 題意 給你乙個5 5的迷宮,0代表通路,1代表牆,找到從迷宮左上角到達右下角的最短路徑,並輸出路徑。題解 先進行一遍bfs,得到vis陣列,表示到該位置最少需要多少時間,然後從 4,4 位置倒著查路徑,查到符合的就直接break,防止重複 ac include include includ...

poj 3984 迷宮問題(bfs, 記錄路徑)

迷宮問題 time limit 1000ms memory limit 65536k total submissions 16156 accepted 9636 description 定義乙個二維陣列 int maze 5 5 它表示乙個迷宮,其中的1表示牆壁,0表示可以走的路,只能橫著走或豎著走...