NYOJ82 迷宮尋寶(一) BFS

2021-07-24 01:32:13 字數 1068 閱讀 5662

時間限制:

1000 ms  |  記憶體限制:

65535 kb

難度: 4

描述 乙個叫acm的尋寶者找到了乙個藏寶圖,它根據藏寶圖找到了乙個迷宮,這是乙個很特別的迷宮,迷宮裡有n個編過號的門(n<=5),它們分別被編號為a,b,c,d,e.為了找到寶藏,acm必須開啟門,但是,開門之前必須在迷宮裡找到這個開啟這個門所需的所有鑰匙(每個門都至少有一把鑰匙),例如:現在a門有三把鑰匙,acm就必須找全三把鑰匙才能開啟a門。現在請你編寫乙個程式來告訴acm,他能不能順利的得到寶藏。

輸入

輸入可能會有多組測試資料(不超過10組)。

每組測試資料的第一行包含了兩個整數m,n(1

輸出每行輸出乙個yes表示acm能找到寶藏,輸出no表示acm找不到寶藏。

樣例輸入

4 4 

s.x.

a.x.

..xg

....

3 4

s.xa

.axb

b.ag

0 0

樣例輸出

yes 

no

#include#include#include#includeusing namespace std;

struct node

n1,n2;

int dx[4]=;

int dy[4]=;

int k[6];

int m,n;

int begin_x,begin_y;

char map[25][25];

bool vis[25][25];

bool judge(int x,int y)

bool bfs()}}

for(int i=0;i<4;i++)}}

return false; }

int main()

if(bfs()) printf("yes\n");

else printf("no\n");

}return 0;

}

nyoj 82 迷宮尋寶(一)BFS

解題思路 本來看了這個題是一籌莫展的,仔細考慮一下還是可以寫的,首先要讀懂題目 1.寶藏在地圖裡可能被門鎖,也可能不被門鎖。2.要想開門必須找到地圖中所有的鑰匙才能開門。下面就是解題了,首要任務就是要找到所有的鑰匙,在找鑰匙的途中如果遇到能開的門就給開了,如果能遇到寶藏就直接返回true,如果不能的...

nyoj82迷宮尋寶(一)

時間限制 1000 ms 記憶體限制 65535 kb 難度 4 描述 乙個叫acm的尋寶者找到了乙個藏寶圖,它根據藏寶圖找到了乙個迷宮,這是乙個很特別的迷宮,迷宮裡有n個編過號的門 n 5 它們分別被編號為a,b,c,d,e.為了找到寶藏,acm必須開啟門,但是,開門之前必須在迷宮裡找到這個開啟這...

迷宮尋寶(一) nyoj 82

時間限制 1000 ms 記憶體限制 65535 kb 難度 4 描述 乙個叫acm的尋寶者找到了乙個藏寶圖,它根據藏寶圖找到了乙個迷宮,這是乙個很特別的迷宮,迷宮裡有n個編過號的門 n 5 它們分別被編號為a,b,c,d,e.為了找到寶藏,acm必須開啟門,但是,開門之前必須在迷宮裡找到這個開啟這...