仙島求藥(BFS)

2022-09-09 10:27:08 字數 1828 閱讀 9999

問題描述:

輸入樣例1:

8 8

.@##...#

#....#.#

#.#.##..

..#.###.

#.#...#.

..###.#.

...#.*..

.#...###

輸出樣例1:
10
輸入樣例2:
6 5

.*.#.

.#...

..##.

.....

.#...

....@

輸出樣例2:
8
輸入樣例3:
9 6

.#..#.

.#.*.#

.####.

..#...

..#...

..#...

..#...

#.@.##

.#..#.

輸出樣例3:
-1
題意:

在迷宮中,從乙個點走到另乙個點,尋找兩點間的最短路徑。

思路:這題乙個搜尋應該就可以直接解決(資料不大),最優解/最短路徑這種問題一般就直接想bfs了...(想了想用dfs來遍歷好像也不是不行,結果就是tle了...

bfs:

1 #include2

using

namespace

std;3];

4int dir[4][2]=,,,};

5int vis[30][30];6

intm, n, x, y, d;

7struct

node816

};17

bool

in(int x, int

y)18

21int bfs(int sx, int

sy)2243}

44}45}

46return -1;47

}48intmain()

4961}62

}63 cout

64return0;

65 }

dfs:

(貼一下tle的**)

1 #include2

using

namespace

std;3];

4int dir[4][2]=,,,};

5int ans=1000000;6

int flag=0;7

intm, n, x, y;

8int vis[30][30];9

bool

in(int x,int

y)10

13void dfs(int x, int y, int

depth)

1422

return;23

}24 vis[x][y]=1;25

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

2633

}34 vis[x][y]=0;35

}36intmain()

3743

for(int i=0; i)

44for(int j=0; j)45@

')4650 dfs(x,y,0

);51

if(flag==1

)52 cout

53else

54 cout<

<

55return0;

56 }

2727 仙島求藥

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

zufeoj 仙島求藥

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

6 仙島求藥

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