C 仙島求藥

2021-09-26 13:25:30 字數 1882 閱讀 6632

openj_bailian-3726

計蒜客-t1212

注:兩題庫題意相同,但輸入輸出的格式不同。

本題的題面以openj_bailian-3726為準,**兩題庫通用。

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

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

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

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

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

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

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

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

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

8 8

.@##...#

#....#.#

#.#.##..

..#.###.

#.#...#.

..###.#.

...#.*..

.#...###

6 5.*.#.

.#...

..##.

.....

.#...

....@

9 6.#..#.

.#.*.#

.####.

..#...

..#...

..#...

..#...

#.@.##

.#..#.

0 0

10

8-1

#pragma gcc optimize(3,"ofast","inline")

#pragma g++ optimize(3,"ofast","inline")

#include #include #include #include #include #include #define r register int

#define re(i,a,b) for(r i=a; i<=b; i++)

#define ms(i,a) memset(a,i,sizeof(a))

using namespace std;

typedef long long ll;

int const n=25;

int const dx[4]=;

int const dy[4]=;

struct point ;

int m,n,gx,gy,sx,sy;

int vis[n][n];

char a[n][n];

int bfs(int sx,int sy) );

while(!q.empty()) );}}

return -1;

}int main()

printf("%d\n",bfs(sx,sy));

}return 0;

}

2727 仙島求藥

總時間限制 1000ms 記憶體限制 65536kb 描述 少年李逍遙的嬸嬸病了,王小虎介紹他去一趟仙靈島,向仙女姐姐要仙丹救嬸嬸。叛逆但孝順的李逍遙闖進了仙靈島,克服了千險萬難來到島的中心,發現仙藥擺在了迷陣的深處。迷陣由m n個方格組成,有的方格內有可以瞬秒李逍遙的怪物,而有的方格內則是安全。現...

zufeoj 仙島求藥

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

6 仙島求藥

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