洪尼瑪今天準備去尋寶,在乙個n*n (n行, n列)的迷宮中,存在著乙個入口、一些牆壁以及乙個寶藏。由於迷宮是四連通的,即在迷宮中的乙個位置,只能走到與它直接相鄰的其他四個位置(上、下、左、右)。現洪尼瑪在迷宮的入口處,問他最少需要走幾步才能拿到寶藏?若永遠無法拿到寶藏,則輸出-1。
input
多組測試資料。
每組資料輸入第一行為正整數n,表示迷宮大小。
接下來n行,每行包括n個字元,其中字元』.『表示該位置為空地,字元』#'表示該位置為牆壁,字元』s』表示該位置為入口,字元』e』表示該位置為寶藏,輸入資料中只有這四種字元,並且』s』和』e』僅出現一次。
n≤1000
output
輸出拿到寶藏最少需要走的步數,若永遠無法拿到寶藏,則輸出-1。
#include#include#include#include#includeusing namespace std;
#define ll long long
const int inf = 0x3f3f3f3f;
char g[1010][1010];
bool vis[1010][1010];
int a[4] = ;
int b[4] = ;
struct node;
queueq;
int n,x,y,ex,ey,ans;
void dfs(int x,int y)
if(g[next.x][next.y] == 'e')
} }}
int main()
}} dfs(x,y);
if(ans != inf)
printf("%d\n",ans);
else
printf("-1\n"); }
}
迷宮尋寶(二)
時間限制 1000 ms 記憶體限制 10000 kb 難度 5 描述 乙個叫acm的尋寶者找到了乙個藏寶圖,它根據藏寶圖找到了乙個迷宮,這是乙個很特別的迷宮,迷宮是一100 100的個正方形區域,裡面有很多牆,這些牆都是由一些直線構成的,如下圖。牆把迷宮分隔成很多藏寶室,任何兩個藏寶室之間都沒有門...
迷宮尋寶 一
時間限制 1000 ms 記憶體限制 65535 kb 難度 4 描述乙個叫acm的尋寶者找到了乙個藏寶圖,它根據藏寶圖找到了乙個迷宮,這是乙個很特別的迷宮,迷宮裡有n個編過號的門 n 5 它們分別被編號為a,b,c,d,e.為了找到寶藏,acm必須開啟門,但是,開門之前必須在迷宮裡找到開啟這個門所...
NYOJ 迷宮尋寶(一)
時間限制 1000 ms 記憶體限制 65535 kb 難度 4 描述乙個叫acm的尋寶者找到了乙個藏寶圖,它根據藏寶圖找到了乙個迷宮,這是乙個很特別的迷宮,迷宮裡有n個編過號的門 n 5 它們分別被編號為a,b,c,d,e.為了找到寶藏,acm必須開啟門,但是,開門之前必須在迷宮裡找到這個開啟這個...