題面:乙個人在乙個座標放炸彈,請問可以可以殺死的敵人數目最大是,並且輸出該點的座標
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 ...