回溯法之迷宮問題(華為筆試題)

2021-10-09 04:14:27 字數 1132 閱讀 9589

可以參考我的另一篇部落格。

2020/8/12日的華為筆試出了一道筆試迷宮問題的改版,題目大致的意思如下:

有一條剛貼地磚的路,強迫症小明走路每次走的步長一樣,並且只走貼了地磚的地方,如果用1代表貼了地磚,用0代表沒有地磚,問小明能否從左上角出發走到終點右下角。

例題:輸入

235

1010

0000

1000

101

輸出

true
其中2是步長,即小明一次走兩步,3和5分別代表行數和列數。下面3行5列是代表有地磚和沒有地磚。小明只要按照(0,0),(0,2),(2,2),(2,4)的路線就可以走到終點。

這裡的**不僅能確定小明能否走到終點,而且能計算一共有幾種走的方式。具體看下面的**。

//經典的回溯法

//華為面試:走迷宮

#include

using

namespace std;

int path[3]

[5]=

,,};

int step =1;

int rowout =3;

int colout =5;

int way =0;

bool

feasible

(int row,

int col)

void

getpath

(int row,

int col)

elseif(

feasible

(row + step, col))}

}int

main()

}getpath(0

,0);

if(way>0)

cout <<

"ok! way="

<< way << endl;

else

cout <<

"false!"

<< endl;

system

("pause");

return0;

}

回溯法 迷宮問題

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

迷宮問題 回溯法

描述 給乙個20 20的迷宮 起點座標和終點座標,問從起點是否能到達終點。輸入 多個測例。輸入的第一行是乙個整數n,表示測例的個數。接下來是n個測例,每個測例佔21行,第一行四個整數x1,y1,x2,y2是起止點的位置 座標從零開始 x1,y1 是起點,x2,y2 是終點。下面20行每行20個字元,...

回溯法求解迷宮問題

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