走迷宮 SDUT1269 ACM演算法設計

2022-08-31 09:45:13 字數 1861 閱讀 8103

time limit: 1000ms memory limit: 65536k

有乙個m*n格的迷宮(表示有m行、n列),其中有可走的也有不可走的,如果用1表示可以走,0表示不可以走,輸入這m*n個資料和起始點、結束點(起始點和結束點都是用兩個資料來描述的,分別表示這個點的行號和列號)。現在要你程式設計找出所有可行的道路,要求所走的路中沒有重複的點,走時只能是上下左右四個方向。如果一條路都不可行,則輸出相應資訊(用-1表示無路)。

第一行是兩個數m,n(1< m, n< 15),接下來是m行n列由1和0組成的資料,最後兩行是起始點和結束點。

所有可行的路徑,輸出時按照左上右下的順序。描述乙個點時用(x,y)的形式,除開始點外,其他的都要用「->」表示。如果沒有一條可行的路則輸出-1。

5 4

1 1 0 0

1 1 1 1

0 1 1 0

1 1 0 1

1 1 1 1

1 15 4

(1,1)->(1,2)->(2,2)->(2,3)->(3,3)->(3,2)->(4,2)->(4,1)->(5,1)->(5,2)->(5,3)->(5,4)

(1,1)->(1,2)->(2,2)->(2,3)->(3,3)->(3,2)->(4,2)->(5,2)->(5,3)->(5,4)

(1,1)->(1,2)->(2,2)->(3,2)->(4,2)->(4,1)->(5,1)->(5,2)->(5,3)->(5,4)

(1,1)->(1,2)->(2,2)->(3,2)->(4,2)->(5,2)->(5,3)->(5,4)

(1,1)->(2,1)->(2,2)->(2,3)->(3,3)->(3,2)->(4,2)->(4,1)->(5,1)->(5,2)->(5,3)->(5,4)

(1,1)->(2,1)->(2,2)->(2,3)->(3,3)->(3,2)->(4,2)->(5,2)->(5,3)->(5,4)

(1,1)->(2,1)->(2,2)->(3,2)->(4,2)->(4,1)->(5,1)->(5,2)->(5,3)->(5,4)

(1,1)->(2,1)->(2,2)->(3,2)->(4,2)->(5,2)->(5,3)->(5,4)

深搜+模擬,注意當前遞迴棧的visited標誌使用過後要重置回來,還有要注意題目中「左上右下的順序」...

#include //

#include

using

namespace

std;

const

int maxn = 16

;const

int devide = 100

;int

maze[maxn][maxn];

int queue[maxn*maxn];

intvisited[maxn][maxn];

intm,n,r,s;

intflag;

void dfs(const

int& x,const

int& y,const

int&depth)

cout

<<"("

<","

<")"

<}

else

if(p - 1 > 0 && maze[p-1][q] && !visited[p-1

][q])

if(q + 1

<= n && maze[p][q+1] && !visited[p][q+1

])

if(p + 1

<= m && maze[p+1][q] && !visited[p+1

][q])

}}int

main()

SDUT 動態規劃 走迷宮 1269

走迷宮 pblem description 有乙個mn格的迷宮 表示有m行 n列 其中有可走的也有不可走的,如果用1表示可以走,0表示不可以走,輸入這mn個資料和起始點 結束點 起始點和結束點都是用兩個資料來描述的,分別表示這個點的行號和列號 現在要你程式設計找出所有可行的道路,要求所走的路中沒有重...

機械人走迷宮 SDUT1590 ACM演算法設計

time limit 1000ms memory limit 32768k 迷宮對大家來說肯定是很熟悉的東西了,多數人都知道要想走出迷宮,在裡面亂猜肯定是不行的,比較好的方法是貼著牆的一側走,比如只貼著右側走,最後肯定會走出迷宮,但不能保證要走多久,可能出口盡在咫尺你卻錯過了。機械人只聽從人的命令或...

SDUT 2449 走迷宮(深度優先搜尋)

資料結構實驗之棧與佇列十 走迷宮 time limit 1000 ms memory limit 65536 kib submit statistic discuss problem description 乙個由n m 個格仔組成的迷宮,起點是 1,1 終點是 n,m 每次可以向上下左右四個方向任...