炸弹人(广度优先搜索)
来源:互联网 发布:java文件上传 编辑:程序博客网 时间:2024/05/19 15:20
首先用广度优先搜索来枚举出所有小人能够到达的点,并计算出每个点能够消灭的敌人的数量。如果下一个点能够消灭的敌人数量大于前一个,那么更新消灭敌人数量的最大值,并更新坐标点。下面是代码。
#include<stdio.h>#include<queue>#include<string.h>using namespace std;struct A{ int x,y;};int Next[4][2] = {{0,1},{1,0},{0,-1},{-1,0}};int book[20][20],n,m,Max,mx,my;char Map[20][20];void getnum(int i, int j){ int sum=0,x,y; x = i, y = j; while(Map[x][y] != '#') { if(Map[x][y] == 'G') sum++; x--; } x = i, y = j; while(Map[x][y] != '#') { if(Map[x][y] == 'G') sum++; x++; } x = i, y = j; while(Map[x][y] != '#') { if(Map[x][y] == 'G') sum++; y--; } x = i, y = j; while(Map[x][y] != '#') { if(Map[x][y] == 'G') sum++; y++; } if(sum > Max) { Max = sum; mx = i; my = j; }}void bfs(A head){ A h,t; int i,tx,ty; queue<A> q; getnum(head.x,head.y); q.push(head); book[head.x][head.y] = 1; while(!q.empty()) { h = q.front(); q.pop(); for(i = 0; i < 4; i++) { tx = h.x + Next[i][0]; ty = h.y + Next[i][1]; if(tx < 0 || tx >= n || ty < 0 || ty >= m) continue; if(Map[tx][ty] == '.' && book[tx][ty] == 0) { t.x = tx; t.y = ty; getnum(tx, ty); q.push(t); book[tx][ty] = 1; } if(tx == n-1 && ty == m-1) return ; } }}int main(){ A h; int i,j; while(~scanf("%d%d%d%d",&n,&m,&h.x,&h.y)) { memset(book,0,sizeof(book)); Max = 0; mx = h.x; my = h.y; for(i = 0; i < n; i++) scanf("%s",Map[i]); bfs(h); printf("(%d, %d) %d\n",mx,my,Max); } return 0;}
/*输入样例:
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#
#############
输出:(7,11)10
*/
阅读全文
0 0
- 炸弹人(广度优先搜索)
- 广度优先搜索-炸弹人问题
- BFS广度优先搜索 炸弹人
- 炸弹人 广度优先—C
- 深度优先搜索-炸弹人问题
- 深度优先搜索+解炸弹人游戏
- BFS深度优先搜索 炸弹人
- 再解炸弹人--广度搜索和深度搜索
- 广度优先搜索算法
- 双向广度优先搜索
- 广度优先搜索法
- pku2251(广度优先搜索)
- POJ1184Clerver_Writer:广度优先搜索
- Java广度优先搜索
- [AI]广度优先搜索
- 广度优先搜索-BFS
- 广度优先搜索算法
- 广度优先搜索算法
- 迭代器与生成器
- 什么是xss盲打
- css3-Media Query实现最简单的响应式布局
- 微信小程序 绘图 canvas
- verilog错误整理
- 炸弹人(广度优先搜索)
- 编程基础刷题(一)
- vim
- 设计模式--设计原则
- 杭电ACM 2003(求绝对值)c++
- 课本案例--装备选择
- hdoj 1050
- 增强JDBC
- Thunderbird 使用thread