题设条件与上一题相同,但是只能在能走到的地方放置炸弹,小人的起始位置为第四行第四列。用'#'代表墙,'.'代表可以走的位置,'G'代表小怪兽。从第0行第0列开始数

由于该题需要考虑到’ . ‘是否能走到,所以这题需要使用广度优先搜索找到他能走到的路径并求出在能走到的点放置炸弹消灭的小怪兽数量。

分析此地图,在(1,11)放置炸弹最多消灭11个小怪兽,但是小人是无法走到这个位置的,所以正确答案应该是在(7,11)放置炸弹最多能消灭10个小怪兽。

/*
#############
#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<stdio.h>
#include<string.h>
int main()
{char map[20][20];memset(map,0,sizeof(map));int q,w,i,j,m=13,n=13,sum=0,flag,f1=0,f2=0;//scanf("%d %d\n",&m,&n);for (i=0;i<m;i++)gets(map[i]);int stratx=3,straty=3,tx,ty,head=0,tail=0,k,que[400][2],book[20][20];//book用来标记是否走过这个点 memset(book,0,sizeof(book));int next[4][2]={0,1,1,0,0,-1,-1,0};que[tail][0]=stratx;que[tail][1]=straty;tail++;while (head<tail){for (k=0;k<3;k++){//下一个点坐标 tx=que[head][0]+next[k][0];ty=que[head][1]+next[k][1];//判断边界if (tx<0||tx>m-1||ty<0||ty>n-1)continue;//判断是否走过if (map[tx][ty]=='.'&&book[tx][ty]==0){//标记这个点已经走过了book[tx][ty]=1;//入队que[tail][0]=tx;que[tail][1]=ty;tail++; }}head++;}for (i=1;i<m-1;i++){for (j=1;j<n-1;j++){if (map[i][j]=='.'&&book[i][j]==1){flag=0;q=i;w=j;while (map[q][w]!='#'){if (map[q][w]=='G')flag++;q--;}q=i;w=j;while (map[q][w]!='#'){if (map[q][w]=='G')flag++;q++;}q=i;w=j;while (map[q][w]!='#'){if (map[q][w]=='G')flag++;w--;}q=i;w=j;while (map[q][w]!='#'){if (map[q][w]=='G')flag++;w++;}map[i][j]=flag+'0';if (flag>=sum){sum=flag;f1=i;f2=j; }}}}//显示地图 /*for (i=0;i<m;i++)puts(map[i]);*/printf("在(%d,%d)处放炸弹可以消灭最多%d个小怪兽。",f1,f2,sum);
}

炸弹人问题(加强版)相关推荐

  1. 计算机丢失fc64,FC红白机64合1

    软件简介 Soft Introduction FC红白机64合1 64in1.nes 01Islander冒险岛1 02Grading沙罗曼蛇1 03Star Soldier星际战士 04Goonie ...

  2. [bzoj3673/3674可持久化并查集加强版]

    n个集合 m个操作 操作: 1 a b 合并a,b所在集合 2 k 回到第k次操作之后的状态(查询算作操作) 3 a b 询问a,b是否属于同一集合,是则输出1否则输出0 0<n,m<=2 ...

  3. P5357 【模板】AC自动机(二次加强版)(AC自动机建fail树dfs求模式串出现次数)

    P5357 [模板]AC自动机(二次加强版)(AC自动机建fail树dfs求模式串出现次数) 传送门 形式上,AC 自动机基于由若干模式串构成的 Trie 树,并在此之上增加了一些 fail 边:本质 ...

  4. P2870 [USACO07DEC]最佳牛线,黄金Best Cow Line, Gold(加强版)(贪心+hash哈希)

    P2870 [USACO07DEC]最佳牛线,黄金Best Cow Line, Gold(加强版)(贪心+hash哈希) 洛谷上这道水题丧心病狂地把数据范围加到了500000 普通的做法肯定A不了了, ...

  5. UC伯克利发现「没有免费午餐定理」加强版:每个神经网络,都是一个高维向量...

    来源:AI科技评论 作者:Mr Bear.杏花 编辑:青暮 经典的「没有免费午餐定理」表明:如果某种学习算法在某些方面比另一种学习算法更优,则肯定会在其它某些方面弱于另一种学习算法. 也就是说,对于任 ...

  6. Linux下du加强版,灵活快速定位硬盘使用情况,无需安装

    du命令查看使用空间,对文件和目录磁盘使用的空间的查看. du [选项][文件] -a或-all 显示目录中个别文件的大小. -b或-bytes 显示目录或文件大小时,以byte为单位. -c或--t ...

  7. [EXP]windows全版本SMB溢出工具加强版

    工具:k8加强版zzz 编译:python 漏洞:MS17-010 用法: zzz_exploit.exe 192.11.22.82 zzz_exploit.exe 192.11.22.82 exe参 ...

  8. [FZSZOJ 1029] 观察者加强版

    1029: 观察者加强版 时间限制: 1 Sec内存限制: 128 MB 题目描述 魔法学院的期末考开始了. 校长Jacobi用魔法在考场生成了一个观察者,以观察考场情况. 整个考场可以看成一个xOy ...

  9. 加强版dd工具dc3dd

    加强版dd工具dc3dd dd是Linux最常用的磁盘备份工具,但缺少渗透测试常用的数据校验.hash等重要功能.Kali Linux提供的一款专用工具dc3dd.该工具是dd的加强版.它在dd的基础 ...

最新文章

  1. 深度学习实现场景字符识别模型|代码干货
  2. action 和servlet关系
  3. OpenCV使用dnn从图像中解析人体部位的实例(附完整代码)
  4. elastic search java_elasticsearch学习四、JAVA调用
  5. monotouch在ipad中的实例应用--显示图像和文字
  6. bzoj1232[Usaco2008Nov]安慰奶牛cheer*
  7. Java多线程实现多客户端的通信
  8. mysql垃圾清理_mysql 垃圾图片清理
  9. 【报告分享】2020人工智能+安防行业应用研究分析报告.pdf(附下载链接)
  10. c语言上机+pdf,c语言上机题库.pdf
  11. python的除法_python中的除法
  12. macbook配置java环境变量_mac上java环境变量配置
  13. 实验七 TCP/IP协议分析
  14. 富媒体超级短信(多媒体短信、视频短信)亮点、应用场景
  15. windows xp 提示系统是盗版图标右下角有个五角星图标
  16. 25G/100G-PON演进与趋势分析
  17. 苹果xr十大隐藏功能_今天才发现!苹果手机闹钟除了提醒起床,还有3个隐藏功能...
  18. Franka Emika Panda连接真实机械臂(一)
  19. 弹出表情气泡仿魔兽的技能冷效果却实现
  20. java+vue实现词云生成+展示(kumo+echarts-wordcloud )

热门文章

  1. 利用Dynamo建立桥梁下部结构—桥墩系梁盖梁
  2. windows10无法搜索计算机,Win10电脑搜索功能不能用怎么办?
  3. Altium Designer使用技巧总结
  4. JavaScript(网页特效)
  5. node.js开源文件服务器,本地node.js服务器搭建
  6. MultiNet:自主驾驶中的实时联合语义推理 论文翻译
  7. 数据中心蓄冷时间多长合适呢?-孙长青
  8. python2.7入门---XML解析
  9. css的inherit属性
  10. java高级后端研发工程师JD,京东资深后端JAVA研发工程师工资待遇怎么样 - JD京东商城 - 职友集...