BFS深度優先搜尋 炸彈人

2021-07-31 01:27:53 字數 1159 閱讀 6866

題面:乙個人在乙個座標放炸彈,請問可以可以殺死的敵人數目最大是,並且輸出該點的座標

g代表敵人

.代表該位置可以走

「#」代表該位置存在障礙物 並且防止炸彈的蔓13 13 3 3

.#############

.#gg.ggg#ggg.#

.###.#g#g#g#g#

.#…….#..g#

.#g#.###.#g#g#

.#gg.ggg.#.gg#

.#g#.#g#.#.#.#

.##g…g…..#

.#g#.#g###.#g#

.#…g#ggg.gg#

.#g#.#g#g#.#g#

.#gg.ggg#g.gg#

.#############

#include 

#include

#include

#include

#include

using

namespace

std;

char

map[25][25];

int mark[25][25];

int startx,starty,n,m;

int next[4][2]= ;

int max=0;

struct node ;

node cmp;

int getnum(int x,int y)

tx=x;

ty=y;

while(map[tx][ty]!='#')

tx=x;

ty=y;

while(map[tx][ty]!='#')

tx=x;

ty=y;

while(map[tx][ty]!='#')

return sum;

}void dfs(int curx,int cury)

int tx,ty;

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

}}int main()

}dfs(startx,starty);

printf("%d %d %d",cmp.gox,cmp.goy,max);

return

0;}

炸彈人 DFS和BFS

做出二維陣列 表示牆壁 g表示敵人 表示可以安放炸彈的位置 問題關鍵 不是所有地點你都可以達到,注意路徑問題 比如說 1,11 點是消滅敵人最多的點,但是不一定是炸彈可放置的點 如下 示例 void dfs int x,int y for i 0 i 4 i return 如下 示例 8.14再次更...

再解炸彈人(深度優先和廣度優先)

現在炸彈不是想放在那裡就能放在那裡的了,必須由小人能夠走到的地方才能放置炸彈。比如下面這個例子小人預設站在 3,3 這個位置。請問放在何處最多可以消滅多個敵人。解釋 上面解炸彈人的方法有可能小人並不能走到那裡去,也就不能放置炸彈。我們可以通過深度優先和廣度優先來進行搜尋,確保該點小人可以到達,再在可...

DFS BFS(解決炸彈人)

問題省略 dfs解決炸彈人 include includeusing namespace std char a 20 21 用來儲存地圖 int book 20 20 maxn,mx,my,n,m int getnum int i,int j x i,y j while a x y x i,y j ...