【問題描述】
山山厭倦了普通的迷宮,他準備挑戰奇妙的迷宮 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...