迷宮問題 回溯法

2021-08-25 09:24:51 字數 2010 閱讀 4603

描述:

給乙個20×20的迷宮、起點座標和終點座標,問從起點是否能到達終點。

輸入:

多個測例。輸入的第一行是乙個整數n,表示測例的個數。接下來是n個測例,每個測例佔21行,第一行四個整數x1,y1,x2,y2是起止點的位置(座標從零開始),(x1,y1)是起點,(x2,y2)是終點。下面20行每行20個字元,』.』表示空格;』x』表示牆。

輸出:

每個測例的輸出佔一行,輸出yes或no。

輸入樣例: 2

0 0 19 19

....................

******************xx

....................

....................

....................

....................

....................

....................

....................

....................

....................

....................

....................

....................

....................

....................

....................

....................

....................

....................

0 0 19 19

....................

******************x.

....................

.******************x

....................

******************x.

....................

.******************x

....................

******************x.

....................

.******************x

....................

******************x.

******************x.

******************x.

******************x.

....................

.******************x

....................

輸出樣例: no

yes解題思路:

是根據四個方向不斷的找下去,直到找到或是全部找一遍為止。

**如下:

code:

#include

#include

using

namespacestd;

chardata[21][21];

intstate=0;

voidback(intx1,inty1,intx2,inty2)

,yshift[4]=;//用來控制方向

if(x1==x2&&y1==y2)

data[x1][y1]='*';

for(inti=0;i<4;i++)

back(x1,y1,x2,y2);

} x1=x1-xshift[i];y1=y1-yshift[i];//預設這個方向沒有走下去

} }

intmain()

back(x1,y1,x2,y2);

if(state==1)

else

n--;

} return0;

}

回溯法 迷宮問題

1.首先我們需要自定義乙個迷宮 左上角為入口,右下角為出口,0為路,1為牆 用二維陣列儲存 2.我們在走迷宮之前,首先要確立乙個走的順序,即貪心準則,我們首先試探的方向應該是下,然後是右,上,左 為了確保每乙個格仔都有上下左右,我們需要給我們的迷宮加上一圈牆8 8,變成10 10 3.當我們在乙個格...

回溯法求解迷宮問題

題目 這是我在老師發的ppt上發現的一道題,如下 1表示起點 7表示終點,一共六個路口,每個路口可以通達最多左上右三個路口,不能走的方向用0表示,求從1到7的路徑。求解思路 每個路口最多有三個搜尋分支。把演算法設計為如下的搜尋過程 把整個搜尋分解為向左 向前和向右三個方向上子問題的搜尋。當搜尋到某個...

回溯法求解迷宮問題

最近在leetcode上看了些演算法題,有些看著很簡單的很常用的東西,竟然一下子想不出來怎麼求解,比如說 實現sqrt函式,求陣列的排列。如果高數學的不好,這些看似簡單的問題,第一次碰到也會感覺很難求解,當然了,今天要說的是這樣乙個問題,求解迷宮的所有解,這個問題的求解用到了回溯法的思想,不了解這個...