蓝桥杯-长草-代码(BFS)
一:题目
题目描述
小明有一块空地,他将这块空地划分为 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)相关推荐
- BFS算法 蓝桥杯长草问题
题目描述 小明有一块空地,他将这块空地划分为 nn 行 mm 列的小块,每行和每列的长度都为 1. 小明选了其中的一些小块空地,种上了草,其他小块仍然保持是空地. 这些草长得很快,每个月,草都会向外长 ...
- 蓝桥杯单片机DS18B20代码注释及部分时序图
蓝桥杯单片机蓝桥杯单片机DS18B20代码注释及部分时序图 #include<STC15F2K60S2.H> #include<intrins.h>#define uchar ...
- 蓝桥杯STC基础代码-以定时器计数作为时间轴的模板
蓝桥杯STC基础代码 以定时器计数作为时间轴的模板 简介 配置过程 定时器的配置 定时器中断的配置 主函数的配置 代码下载地址 下一章 以定时器计数作为时间轴的模板 简介 这是我写STC15代码时候首 ...
- 蓝桥杯历届试题代码参考
蓝桥杯历届试题代码参考 历届试题 核桃的数量 打印十字图 带分数 剪格子 错误票据 翻硬币 连号区间数 买不到的数目 大臣的旅费 幸运数 横向打印二叉树 危险系数 网络寻路 高僧斗法 格子刷油漆 农场 ...
- 蓝桥杯单片机模块代码(AT24C02)(代码+注释)
本模块是上电可擦除EEPROM,用于存储需要的数据.与上一节使用的底层代码相同,运用同一个总线,其操做顺序与PCF8591除第二步几乎完全一样.相同部分具体可看:蓝桥杯单片机模块代码(PCF8591) ...
- 蓝桥杯 python 走迷宫 BFS
蓝桥杯 python 走迷宫 BFS 题目描述 给定一个 N × × × M 的网格迷宫 G.GG的每个格子要么是道路,要么是障碍物(道路用 1 表示,障碍物用 0 表示). 已知迷宫的入口位置为 ( ...
- 蓝桥杯之穿越雷区 BFS
本题为2015年第六届蓝桥杯C语言A组试题,第4题. 考点:广度优先搜索(BFS) 广搜一般用来解决"最短""最少"问题,需用到队列. 题目描述 标题:穿越雷区 ...
- adv147(蓝桥杯) 学霸的迷宫 bfs
问题描述 学霸抢走了大家的作业,班长为了帮同学们找回作业,决定去找学霸决斗.但学霸为了不要别人打扰,住在一个城堡里,城堡外面是一个二维的格子迷宫,要进城堡必须得先通过迷宫.因为班长还有妹子要陪,磨刀不 ...
- [蓝桥杯2019初赛]迷宫-bfs+存储路径
题目描述 下图给出了一个迷宫的平面图,其中标记为1 的为障碍,标记为0 的为可 以通行的地方. 010000 000100 001001 110000 迷宫的入口为左上角,出口为右下角,在迷宫中,只能 ...
最新文章
- 语言解决猜神童年龄的问题_一个程序设计题目猜年龄(不限程序语言)
- InnoDB purge原理--哪些undo log可purge
- 修改oracle日志大小,修改Oracle重做日志文件大小
- iptables的nat表中 -j redirect 与-dnat --to-destnation的区别
- 参考资料学习APR库
- 使用反射代理类加载器的潜在内存使用问题
- 遭遇“烧钱瓶颈” 优酷成本结构堪忧
- pcu tps_Mac版Microsoft Office 2011重新定义您的TPS报告体验
- Unity开发备忘录000020:Unity2019如何切换成中文界面
- 班级管理系统(SSM+LayUI)
- 这几个方法让你学会PDF尺寸大小怎么调整
- impala 时间格式转换
- 人教版三年级计算机教学计划,2017人教版三年级信息技术教学计划范文
- 打开桌面计算机投屏到扩展屏,win10电脑桌面投屏到电视教程_Win10电脑怎么投屏到电视...
- oracle安装 redo log,Oracle Redo Log 及Logmnr配置使用
- 从零搭建一个自动化运维体系
- Adaptive Context Network for Scene Parsing
- 【热门】男孩取名:代表希望与志向的男孩名字
- 渗透测试工具-瑞士军刀NC
- Unity3D学习之路Homework4—— 飞碟射击游戏
热门文章
- 搭建分布式 ASP.NET Core Web
- 跨平台与云端创新,为企业和开发者开辟更广阔的未来
- Django05: 请求生命周期流程图/路由层
- 【数据库原理及应用】经典题库附答案(14章全)——第九章:数据库安全性
- 利用MRT进行Modis NDVI数据(MOD13Q1)投影变换格式转换操作图文教程
- C语言试题四十七之程序定义了N×M的二维数组,并在主函数中自动赋值。请编写函数function(int a[N][M], int m),该函数的功能是:将数组右上半三角元素中的值乘以m。
- TLS/SSL握手过程
- python listbox排序_python – 从tkinter.Listbox中提取项目列表
- Win10下安装wireshark不能正常使用,cmd管理员身份调用net start npf命令显示无法启动该服务
- 80岁COBOL码农:扶我起来,这个bug我会修!