做出二維陣列: # 表示牆壁; g表示敵人 ;. 表示可以安放炸彈的位置;
問題關鍵:不是所有地點你都可以達到,注意路徑問題(比如說(1,11)點是消滅敵人最多的點,但是不一定是炸彈可放置的點)
;**如下(示例):
void dfs(int x,int y)**如下(示例):,,,};
for(i=0;i<4;i++)
}return;
}
8.14再次更新(c++完整版)
#include using namespace std;# 總結int n, m, book[105][105], ans = 0;
char s[105][105];
int next[4][2] = ,,,};
struct nodenode;
int souzhadan(int x, int y)
i = x, j = y;
while(i < n - 1)
i = x, j = y;
while(j > 0)
i = x, j = y;
while(j < m - 1)
return cnt;
}int judge(int x, int y)
void bfs(int x, int y)
} }}/*
13 13
#############
#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#
#############
3 2*/
int main()
} cin >> x >> y;
bfs(x,y);
cout << ans << endl;
return 0;
}
1 : ==盡可能把所有變數都定義為全域性變數,尤其是記憶體大的陣列變數,因為全域性變數錯太多次了==
2 : ==完成一次遍歷搜尋千萬不要忘記入隊 book[ ][ ]=1,bfs入隊後往往還有類似操作
node.x = newx, node.y = newy;3 : ==必須學會除錯,找到錯誤的位置,省的一錯誤 愣住半天,找不到錯==
BFS深度優先搜尋 炸彈人
題面 乙個人在乙個座標放炸彈,請問可以可以殺死的敵人數目最大是,並且輸出該點的座標 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 ...
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 ...
炸彈人 模擬,列舉
題目描述 id 12033 炸彈人標籤 模擬詳情 小哼最近愛上了 炸彈人 遊戲。你還記得在小霸王遊戲機上的炸彈人嗎?用放置炸彈的方法來消滅敵人。需將畫面上的敵人全部消滅後,並找到隱藏在牆裡的暗門才能過關。現在有乙個特殊的關卡如下。你只有一枚炸彈,但是這枚炸彈威力超強 殺傷距離超長,可以消滅殺傷範圍內...