迷宮 II 廣搜

2022-05-11 01:49:17 字數 1142 閱讀 1226

【問題描述】

山山厭倦了普通的迷宮,他準備挑戰奇妙的迷宮 ii。迷宮 ii 是由若干三角形拼成的六邊形

(見樣例)

,其中有些點可以通過,有些點不能通過。你需要計算從起點走到終點至少要經

過多少點(不包括起點終點)

。【輸入格式】

第一行,乙個整數 n,表示地圖邊長

接下來若干行字串,表示乙個地圖。其中.表示可以經過的點,+表示不能經過的點,s 和

t 表示起點與終點。點與點之間由乙個空格隔開。一行開頭有一些用來保持格式的空格(見

樣例)。資料保證只有一對 s 與 t。

【輸出格式】

一行乙個整數 l,表示至少要經過的點數。若無解,輸出-1

【樣例輸入】

3. . .

. s . .

. . + . .

. . t .

. . .

【樣例輸出】

2【樣例解釋】

【資料範圍】

100%的資料保證 n ≤ 10

這道題主要就是搜尋的時候,注意要考慮情況搜六個方向。

**:

#include#include#include#include#include#define ll long long

#define il inline

#define db double

using namespace std;

int n;

int src[2],des[2];

int limit[45];

int t[1000045][3];

int head,tail=1;

int dist[5]=;

bool vis[45][45];

il void check(int x,int y,int c)

}il void bfs()

if(a>n)

else if(a>n;

char ch;

limit[0]=n-1;

for(int i=1;i<2*n;i++)

}bfs();

return 0;

}

廣搜 快走迷宮

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

迷宮問題 廣搜

定義乙個二維陣列 int maze 5 5 queue 26 int head 0,tail 0,a 5 5 book 5 5 void function int tail 引數是隊尾 else function queue tail f 如果隊尾的父節點不是0 就將該父節點作為新的隊尾繼續呼叫 這...

迷宮問題(廣搜與深搜)

定義乙個二維陣列 int maze 5 5 它表示乙個迷宮,其中的1表示牆壁,0表示可以走的路,只能橫著走或豎著走,不能斜著走,要求程式設計序找出從左上角到右下角的最短路線。input 乙個5 5的二維陣列,表示乙個迷宮。資料保證有唯一解。output 左上角到右下角的最短路徑,格式如樣例所示。sa...