蓝桥杯-长草-代码(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;}} 

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/307505.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Pytorch 中 LSTM 和 LSTMCell 的区别

LSTM 的官方文档在这里 在例子中&#xff1a; LSTM 函数的参数为输入特征向量的长度 input_size 10、隐藏层向量的长度 hidden_size 20、隐藏层的数量 num_layers 2&#xff1b; 输入 input 的维度是时间/序列长度&#xff08;句子有多少个单词&#xff09; time_steps 5、…

程序员修神之路--缓存架构不够好,系统容易瘫痪

“灵魂拷问缓存能大幅度提高系统性能&#xff0c;也能大幅度提高系统瘫痪几率怎么样防止缓存系统被穿透&#xff1f;缓存的雪崩是不是可以完全避免&#xff1f;前几篇文章我们介绍了缓存的优势以及数据一致性的问题&#xff0c;在一个面临高并发系统中&#xff0c;缓存几乎成了…

Magicodes.IE之花式导出

总体设计Magicodes.IE是一个导入导出通用库&#xff0c;支持Dto导入导出以及动态导出&#xff0c;支持Excel、Word、Pdf、Csv和Html。在本篇教程&#xff0c;笔者将讲述如何使用Magicodes.IE进行花式导出。在本篇教程&#xff0c;笔者主要讲述如何使用IE进行花式导出并满足客户…

京东笔试4.2-19:00随笔

30道选择考察到了数据结构&#xff0c;计网&#xff0c;linux,数据库&#xff0c;java基础&#xff0c;就记得这些了 两道编程题 一道二叉树 一道 动态规划 一道也没AC出来 第一道需要会做的前提是 需要创建二叉树 并给其赋值 然后再谈算法 因为一直刷leetcode&#xff0c;转换…

我又踩坑了!如何为HttpClient请求设置Content-Type标头?

最近在重构认证代码&#xff0c;认证过程相当常规&#xff1a;POST /open-api/v1/user-info?client_id&timstamp&rd12345&sign***&methodhmac content-type: application/json payload: { "token":"AA2917B0-C23D-40AB-A43A-4C4B61CC7C74&qu…

利用数组创建二叉树并赋值

1:二叉树的创建与赋值 (1):前言知识 这里的创建是利用层序序列进行创建,主要就是根节点的坐标为i 的话 那么左节点的坐标为 2i1,右节点的坐标为2i2;开辟一个结构体 struct Node {int val;Node * left;Node * right;Node () : val(-1),left(NULL),right(NULL) {};Node(int x)…

2020 中国开源年会(COSCon'20)再启程:开源向善(Open Source for Good)

中国开源年会COSCon2020正式启动&#xff01;*本图由开源社设计组叶凯设计时间&#xff1a;2020年10月24-25日线上直播地址&#xff1a;bilibili & Youtube讲师互动平台&#xff1a;Zoom时间弹指飞逝&#xff0c;转眼即过去了一年。不知道各位在这多舛的半年间又和开源这二…

使用Azure Functions玩转Serverless

Serverless&Azure Functions通过无服务器计算&#xff0c;开发者无需管理基础结构&#xff0c;从而可以更快构建应用程序。通过无服务器应用程序&#xff0c;将由云服务提供商自动预配、缩放和管理运行代码所需的基础结构。要理解无服务器计算的定义&#xff0c;注意到服务…

java并发之初识

一:并发编程的难点 1:原子性问题 操作系统做任务切换,可以发生在任何一条CPU指令执行完成后&#xff1b;CPU能保证的原子操作是指令级别的&#xff0c;而不是高级语言的操作符&#xff1b; n不是原子操作的&#xff0c;而是3条指令 2:可见性问题 可见性是指一个线程对一个…

java并发之synchronized实现原理及其优化

1:synchronnized概述 synchronized修饰的方法或代码块相当于并发中的临界区&#xff0c;即在同一时刻jvm只允许一个线程进入执行。synchronized是通过锁机制实现同一时刻只允许一个线程来访问共享资源的。另外synchronized锁机制还可以保证线程并发运行的原子性&#xff0c;有…

.NET 是信息技术应用创新产业重要参与者

今天是国庆节&#xff0c;也是中秋节&#xff0c;月满中秋&#xff0c;举国欢庆&#xff0c;在这里祝各位开发者中秋国庆快乐。放假在家就想把这几年对于.NET发展相关生态做个梳理&#xff0c;写一篇文章来总结一下这两年从腾讯出来自己创业&#xff0c;推动.NET在国内的应用的…

蓝桥杯- 包子凑数

一:题目 题目描述 小明几乎每天早晨都会在一家包子铺吃早餐。他发现这家包子铺有 NN 种蒸笼&#xff0c;其中第 ii 种蒸笼恰好能放 A_iA i ​ 个包子。每种蒸笼都有非常多笼&#xff0c;可以认为是无限笼。 每当有顾客想买 XX 个包子&#xff0c;卖包子的大叔就会迅速选出若…

秋天 | 等疫情过后,我们继续背起相机去旅行

这是头哥侃码的第218篇原创2020年&#xff0c;注定是不平凡的一年。八个月前&#xff0c;我正和家人一起沉浸在春节的喜悦中&#xff0c;可没成想一场疫情的到来彻底改变了欢快的气氛。别的倒没什么&#xff0c;只是之前所有的计划全部被打乱了。先说春节假期&#xff0c;和舅舅…

简单理解CAP-BASE

1、CAPCAP是分布式系统的指导理论&#xff0c;是NoSQL数据库的理论基石。CAP其实就是对分布式系统的特性总结&#xff0c;即一致性&#xff08;Consistency&#xff09;、可用性&#xff08;Availability&#xff09;、分区容错性&#xff08;Partition tolerance&#xff09;。…

面试必问系列之在浏览器中输入URL后到网页显示 其间发生了什么?

文章目录[TOC](文章目录)1:解析URL网址,从而生成发送给Web服务器的Http请求信息2:真实地址查询-----(DNS域名解析)3:调用协议栈4:可靠的传输 TCP5:远程定位--IP地址6:两点传输--获取MAC地址7:网卡--出口8:送别者--交换机9:出境大门--路由器10:相互扒皮--服务端与客户端1:解析UR…

C# 中的 is 真的是越来越强大,越来越语义化

一&#xff1a;背景 1. 讲故事最近发现 C#7 之后的 is 是越来越看不懂了&#xff0c;乍一看花里胡哨的&#xff0c;不过当我静下心来仔细研读&#xff0c;发现这 is 是越来越短小精悍&#xff0c;而且还特别语义化&#xff0c;那怎是一个爽字了得????&#xff0c;这一篇就和…

leetcode209. 长度最小的子数组(滑动窗口)

一:题目 二:上码 class Solution { public:/**思路:1.滑动窗口解法1>:确定窗口内是什么2>:确定窗口的起始位置3>:确定窗口的终止位置2.窗口:也就是我们的求的连续字符串的和3.窗口的起始位置: 窗口的起始位置最先是我们数组的起始位置,当窗口内连续数组的和大于targe…

开源特训营 - Lesson 4 - 如何运营社区

编辑&#xff1a;李明康责编&#xff1a;袁睿斌作者&#xff1a;课程助教 - 苏斌主讲教师&#xff1a;庄表伟&#xff08;开源社理事长&#xff09;、赵生宇&#xff08;同济大学&#xff09;本次课程的主题为《如何运营社区》&#xff0c;主讲者为开源社的理事长庄表伟老师和来…

leetcode904. 水果成篮(滑动窗口)

一:题目 二:上码 class Solution { public:/**思路:滑动窗口1.滑动窗口为我们 两个品种水果的个数2.滑动窗口的起始位置为数组的起始位置,当遇见一个新的水果种类的时候,这时候就需要移动我们的起始位置这里移动起始位置是要注意的,我们需要移动起始到我们的窗口中 完全没有 这…

拥抱.NET 5,从自研微服务框架开始

“ 2016年发布了.NET Core第一个正式版本&#xff0c;而.NET5也将在下个月就正式来临了&#xff0c;技术日新月异&#xff0c;也有点让人应接不暇。在框架设计上&#xff0c;.NET Framework的全家桶理念&#xff0c;培养了一大批的CRUD&#xff0c;而.NET Core转变成了按需使用…