POJ1376簡單廣搜

2021-06-28 15:17:32 字數 936 閱讀 5888

題意:

給你乙個n*m的矩陣,然後給你機械人的起點和終點,還有起點的方向,然後每次機械人有兩種操作,左右旋轉90度,或者是朝著原來的方向走1,2或者3步,機械人再走的過程中不能碰到格仔,也不能碰到邊界,輸出最少步數。

思路:比較簡單的題目,只是要注意幾點。

(1)走的過程中邊界不可以碰

(2)如果你想一下子走3步的話,記住路程中不能碰牆

(3)mark的時候記得也罷方向mark上。

簡單題目,就說這麼多吧。

#include

#include

#include

using namespace std;

typedef struct

node;

int sx ,sy ,ex ,ey ,n ,m ,sdir;

int mark[55][55][5];

int map[55][55];

node xin ,tou;

bool jude2(int x ,int y)

bool ok(int x ,int y ,int dir)

int bfs()

//right

xin = tou;

xin.t ++ ,xin.dir --;

if(xin.dir == 0) xin.dir = 4;

if(ok(xin.x ,xin.y ,xin.dir))

for(int i = 1 ;i <= 3 ;i ++)

if(tou.dir == 3)

if(tou.dir == 2)

if(tou.dir == 4)

if(!mk && ok(xin.x ,xin.y ,xin.dir))}}

return -1;

}int main ()

return 0;

}

POJ 3278 簡單廣搜

poj3278 題意 輸入n,m,求由n到m需要最少步數,n只能加一減一或者乘二。寫的第二道廣搜題,發現用佇列就是每一種可能讀入隊尾,然後再從隊首乙個乙個的遍歷。需要做的是判斷條件和記錄步數。includeusing namespace std include include include def...

poj 1324 狀態廣搜

其實就是我們經常玩的貪吃蛇。不過現在我們優先蛇的頭的話,要用乙個巧妙的雜湊來把蛇的身體表達出來,那麼就可以用乙個4進製的數字來表示,蛇的身體長度最多不超過8,所以最多是2 7種狀態。1 include2 include3 include4 include5 include6 intconst n 8...

廣搜入門(簡單易懂

這裡需要用到 佇列!題目 農夫要抓牛,農夫可以向前走一步,向後走一步,向前走x步 x為農夫座標 求最短走幾次可以走到牛的座標。模板 1 為了方便,定義乙個結構體,代表當前x 座標 steps 走了多少步 2 建立乙個結構體佇列a,queuea 2 將起點,即農夫座標加入佇列,此時佇列只有乙個元素,編...