2727 仙島求藥

2021-08-03 21:47:34 字數 1574 閱讀 4430

總時間限制: 1000ms 記憶體限制: 65536kb

描述 少年李逍遙的嬸嬸病了,王小虎介紹他去一趟仙靈島,向仙女姐姐要仙丹救嬸嬸。叛逆但孝順的李逍遙闖進了仙靈島,克服了千險萬難來到島的中心,發現仙藥擺在了迷陣的深處。迷陣由m×n個方格組成,有的方格內有可以瞬秒李逍遙的怪物,而有的方格內則是安全。現在李逍遙想盡快找到仙藥,顯然他應避開有怪物的方格,並經過最少的方格,而且那裡會有神秘人物等待著他。現在要求你來幫助他實現這個目標。

下圖 顯示了乙個迷陣的樣例及李逍遙找到仙藥的路線.

輸入 輸入有多組測試資料. 每組測試資料以兩個非零整數 m 和 n 開始,兩者均不大於20。m 表示迷陣行數, n 表示迷陣列數。接下來有 m 行, 每行包含n個字元,不同字元分別代表不同含義:

1) 『@』:少年李逍遙所在的位置;

2) 『.』:可以安全通行的方格;

3) 『#』:有怪物的方格;

4) 『*』:仙藥所在位置。

當在一行中讀入的是兩個零時,表示輸入結束。

輸出 對於每組測試資料,分別輸出一行,該行包含李逍遙找到仙藥需要穿過的最少的方格數目(計數包括初始位置的方塊)。如果他不可能找到仙藥, 則輸出 -1。

樣例輸入

8

8.@##...#

#....

#.##.

#.##..

..#.###.

#.#...

#...###.

#....#.*..

.#...###65

.*.#.

.#...

..##.

.....

.#...

....@96

.#..

#. .#.*.#

.####.

..#...

..#...

..#...

..#...

#.@.##

.#..

#. 0

0

樣例輸出

10 8

-1 本題和抓住那頭牛差不多都用的廣搜加剪枝,我的同學這題使用的佇列但我對佇列的應用不太熟,就沒有用,以後還是要加強佇列的學習。

#include

using

namespace

std;

struct nod[10000];

int n,m,p[100][100],i,j,kx,ky,jx,jy;

char a[100][100];

int x[4]=,y[4]=,s;

void se()

if(a[xx][yy]=='.')

a[xx][yy]='#',d[w].x=xx,d[w].y=yy,d[w].t=d[t].t+1,w++;

}

} t++;

}}int main()

se();

cout

2727 仙島求藥 Openjudge

2727 仙島求藥 少年李逍遙的嬸嬸病了,王小虎介紹他去一趟仙靈島,向仙女姐姐要仙丹救嬸嬸。叛逆但孝順的李逍遙闖進了仙靈島,克服了千險萬難來到島的中心,發現仙藥擺在了迷陣的深處。迷陣由m n個方格組成,有的方格內有可以瞬秒李逍遙的怪物,而有的方格內則是安全。現在李逍遙想盡快找到仙藥,顯然他應避開有怪...

zufeoj 仙島求藥

少年李逍遙的嬸嬸病了,王小虎介紹他去一趟仙靈島,向仙女姐姐要仙丹救嬸嬸。叛逆但孝順的李逍遙闖進了仙靈島,克服了千險萬難來到島的中心,發現仙藥擺在了迷陣的深處。迷陣由m n個方格組成,有的方格內有可以瞬秒李逍遙的怪物,而有的方格內則是安全。現在李逍遙想盡快找到仙藥,顯然他應避開有怪物的方格,並經過最少...

6 仙島求藥

題目鏈結 題目 少年李逍遙的嬸嬸病了,王小虎介紹他去一趟仙靈島,向仙女姐姐要仙丹救嬸嬸。叛逆但孝順的李逍遙闖進了仙靈島,克服了千險萬難來到島的中心,發現仙藥擺在了迷陣的深處。迷陣由 m times nm n 個方格組成,有的方格內有可以瞬秒李逍遙的怪物,而有的方格內則是安全。現在李逍遙想盡快找到仙藥...