一:题目

题目描述
小明有一块空地,他将这块空地划分为 nn 行 mm 列的小块,每行和每列的长度都为 1。

小明选了其中的一些小块空地,种上了草,其他小块仍然保持是空地。

这些草长得很快,每个月,草都会向外长出一些,如果一个小块种了草,则它将向自己的上、下、左、右四小块空地扩展,

这四小块空地都将变为有草的小块。请告诉小明,kk 个月后空地上哪些地方有草。

输入描述
输入的第一行包含两个整数 n, mn,m。

接下来 nn 行,每行包含 mm 个字母,表示初始的空地状态,字母之间没有空格。如果为小数点,表示为空地,如果字母为 gg,表示种了草。

接下来包含一个整数 kk。 其中,2 \leq n, m \leq 1000,1 \leq k \leq 10002≤n,m≤1000,1≤k≤1000。

输出描述
输出 nn 行,每行包含 mm 个字母,表示 kk 个月后空地的状态。如果为小数点,表示为空地,如果字母为 gg,表示长了草。

输入输出样例
示例
输入

4 5
.g...
.....
..g..
.....
2
copy
输出gggg.
gggg.
ggggg
.ggg.

二:上码

/**思路:1.这里要用到BFS遍历,什么意思呢?BFS遍历广度优先遍历,就是我们需要遍历该节点的临结点,如果临界点为 . 的话那就给其赋值,同时记得标记上该结点已经访问过了,等到该访问该节点时,我们就不用再访问了。 2.同时还要注意一个问题,我们需要考虑到处在边界的元素,因为边界上无 上/左/右/下对此的处理 我们是从[1,1]开始我们的第一个元素,同时尽量将我们的数组范围开的大一些 **/
#include<bits/stdc++.h>
using namespace std;char ans[1005][1005];
int visited[1005][1005] = {false};
int m,n,k;void Bfs(int i,int j) {if(ans[i][j] == '.' && visited[i][j] == false){ans[i][j] = 'g';visited[i][j] = true; }}int main () {cin >> m >> n;for (int i = 1; i <=m; i++) {for (int j = 1; j <= n; j++) {cin >> ans[i][j];}} cin >> k;while(k--) {memset(visited,false,sizeof(visited));//这个是为了解决 不同月分草的生长。 for (int i = 1; i <= m; i++) {for (int j = 1; j <= n; j++) {if (ans[i][j] == 'g' && visited[i][j] == false) {Bfs(i-1,j);Bfs(i+1,j);Bfs(i,j-1);Bfs(i,j+1);}   }}          }for (int i = 1; i <= m; i++) {for (int j = 1; j <= n; j++) {cout << ans[i][j];}cout << endl;}}

蓝桥杯-长草-代码(BFS)相关推荐

  1. BFS算法 蓝桥杯长草问题

    题目描述 小明有一块空地,他将这块空地划分为 nn 行 mm 列的小块,每行和每列的长度都为 1. 小明选了其中的一些小块空地,种上了草,其他小块仍然保持是空地. 这些草长得很快,每个月,草都会向外长 ...

  2. 蓝桥杯单片机DS18B20代码注释及部分时序图

    蓝桥杯单片机蓝桥杯单片机DS18B20代码注释及部分时序图 #include<STC15F2K60S2.H> #include<intrins.h>#define uchar ...

  3. 蓝桥杯STC基础代码-以定时器计数作为时间轴的模板

    蓝桥杯STC基础代码 以定时器计数作为时间轴的模板 简介 配置过程 定时器的配置 定时器中断的配置 主函数的配置 代码下载地址 下一章 以定时器计数作为时间轴的模板 简介 这是我写STC15代码时候首 ...

  4. 蓝桥杯历届试题代码参考

    蓝桥杯历届试题代码参考 历届试题 核桃的数量 打印十字图 带分数 剪格子 错误票据 翻硬币 连号区间数 买不到的数目 大臣的旅费 幸运数 横向打印二叉树 危险系数 网络寻路 高僧斗法 格子刷油漆 农场 ...

  5. 蓝桥杯单片机模块代码(AT24C02)(代码+注释)

    本模块是上电可擦除EEPROM,用于存储需要的数据.与上一节使用的底层代码相同,运用同一个总线,其操做顺序与PCF8591除第二步几乎完全一样.相同部分具体可看:蓝桥杯单片机模块代码(PCF8591) ...

  6. 蓝桥杯 python 走迷宫 BFS

    蓝桥杯 python 走迷宫 BFS 题目描述 给定一个 N × × × M 的网格迷宫 G.GG的每个格子要么是道路,要么是障碍物(道路用 1 表示,障碍物用 0 表示). 已知迷宫的入口位置为 ( ...

  7. 蓝桥杯之穿越雷区 BFS

    本题为2015年第六届蓝桥杯C语言A组试题,第4题. 考点:广度优先搜索(BFS) 广搜一般用来解决"最短""最少"问题,需用到队列. 题目描述 标题:穿越雷区 ...

  8. adv147(蓝桥杯) 学霸的迷宫 bfs

    问题描述 学霸抢走了大家的作业,班长为了帮同学们找回作业,决定去找学霸决斗.但学霸为了不要别人打扰,住在一个城堡里,城堡外面是一个二维的格子迷宫,要进城堡必须得先通过迷宫.因为班长还有妹子要陪,磨刀不 ...

  9. [蓝桥杯2019初赛]迷宫-bfs+存储路径

    题目描述 下图给出了一个迷宫的平面图,其中标记为1 的为障碍,标记为0 的为可 以通行的地方. 010000 000100 001001 110000 迷宫的入口为左上角,出口为右下角,在迷宫中,只能 ...

最新文章

  1. 语言解决猜神童年龄的问题_一个程序设计题目猜年龄(不限程序语言)
  2. InnoDB purge原理--哪些undo log可purge
  3. 修改oracle日志大小,修改Oracle重做日志文件大小
  4. iptables的nat表中 -j redirect 与-dnat --to-destnation的区别
  5. 参考资料学习APR库
  6. 使用反射代理类加载器的潜在内存使用问题
  7. 遭遇“烧钱瓶颈” 优酷成本结构堪忧
  8. pcu tps_Mac版Microsoft Office 2011重新定义您的TPS报告体验
  9. Unity开发备忘录000020:Unity2019如何切换成中文界面
  10. 班级管理系统(SSM+LayUI)
  11. 这几个方法让你学会PDF尺寸大小怎么调整
  12. impala 时间格式转换
  13. 人教版三年级计算机教学计划,2017人教版三年级信息技术教学计划范文
  14. 打开桌面计算机投屏到扩展屏,win10电脑桌面投屏到电视教程_Win10电脑怎么投屏到电视...
  15. oracle安装 redo log,Oracle Redo Log 及Logmnr配置使用
  16. 从零搭建一个自动化运维体系
  17. Adaptive Context Network for Scene Parsing
  18. 【热门】男孩取名:代表希望与志向的男孩名字
  19. 渗透测试工具-瑞士军刀NC
  20. Unity3D学习之路Homework4—— 飞碟射击游戏

热门文章

  1. 搭建分布式 ASP.NET Core Web
  2. 跨平台与云端创新,为企业和开发者开辟更广阔的未来
  3. Django05: 请求生命周期流程图/路由层
  4. 【数据库原理及应用】经典题库附答案(14章全)——第九章:数据库安全性
  5. 利用MRT进行Modis NDVI数据(MOD13Q1)投影变换格式转换操作图文教程
  6. C语言试题四十七之程序定义了N×M的二维数组,并在主函数中自动赋值。请编写函数function(int a[N][M], int m),该函数的功能是:将数组右上半三角元素中的值乘以m。
  7. TLS/SSL握手过程
  8. python listbox排序_python – 从tkinter.Listbox中提取项目列表
  9. Win10下安装wireshark不能正常使用,cmd管理员身份调用net start npf命令显示无法启动该服务
  10. 80岁COBOL码农:扶我起来,这个bug我会修!