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

2021-06-28 15:17:32 字數 1582 閱讀 4270

k - 迷宮問題

crawling in process...

crawling failed

time limit:1000msmemory limit:65536kb64bit io format:%i64d & %i64u

submit

status

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)

剛學的記錄路徑。

不過bfs的部分不是我以前那種寫法,還是感覺有點生澀。

其他大體上差不多吧。

#include #include #include using namespace std;

int dir[4][2]=,,,};

int map[6][6];

int rear=1;

int front=0;

struct node

;node q[36];

void output(int i)

}void bfs(int x,int y)

front++;//出隊 }}

int main()

又學了種自己熟悉的寫法。

簡單清楚。。

#include #include #include using namespace std;

#include int dir[4][2]=,,,};

int map[10][10];

struct node

;node pre[10][10];

bool check(int x,int y)

void find(node now)

find(pre[now.x][now.y]);

printf("(%d, %d)\n",now.x,now.y);

}void bfs()

} find(st);

}int main()

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表示可以走的路,只能橫著走或豎著走...

poj 3984 迷宮問題 BFS 路徑記錄

include include include include includeusing namespace std struct node node map 10 10 bool vis 10 10 int dirx 4 int diry 4 int main queueq map 1 1 fx ...