问题描述

  小明有一块空地,他将这块空地划分为 n 行 m 列的小块,每行和每列的长度都为 1。

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

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

  请告诉小明,k 个月后空地上哪些地方有草。

输入格式

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

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

  接下来包含一个整数 k。

输出格式

  输出 n 行,每行包含 m 个字母,表示 k 个月后空地的状态。如果为小数点,表示为空地,如果字母为 g,表示长了草。

样例输入

4 5
.g...
.....
..g..
.....
2

样例输出

gggg.

gggg.

ggggg

.ggg.

评测用例规模与约定

  对于 30% 的评测用例,2 <= n, m <= 20。

  对于 70% 的评测用例,2 <= n, m <= 100。

  对于所有评测用例,2 <= n, m <= 1000,1 <= k <= 1000。

package 第十三次模拟;

import java.util.Scanner;

public class Demo9草地 {
public static int[][] bool;
public static int[] start;
public static int[] end;
public static char[][] num ;
public static int k = 0, n = 0, m = 0;
public static int[] x = { 0, 1, 0, -1 };
public static int[] y = { 1, 0, -1, 0 }; public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
n = sc.nextInt();
m = sc.nextInt();
num = new char[n][m];
for (int i = 0; i < n; i++) {
String s = sc.next();
num[i] = s.toCharArray();
}
k = sc.nextInt();
sc.close();
start = new int[m * n];
end = new int[m * n];
int temp = 0;
bool = new int[n][m];
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
if (num[i][j] == 'g') {
start[temp] = i;
end[temp++] = j;
}
else{
bool[i][j]=-1;
}
}
}
for (int i = 0; i < temp; i++) {
dfs(start[i],end[i],k);
}
for (int i = 0; i < n; i++) {
for (int j = 0; j <m; j++) {
System.out.print(num[i][j]);
}
System.out.println();
}
} public static void dfs(int xx, int yy, int kk) { bool[xx][yy]=kk;
num[xx][yy]='g';
for (int i = 0; i < 4; i++) {
int newx = x[i] + xx;
int newy = y[i] + yy;
if ( newx >= 0 && newy >= 0 && newx < n && newy < m&& kk - 1 > bool[newx][newy]) {
dfs(newx, newy, kk - 1);
}
}
} }

Java实现蓝桥杯模拟空地长草的更多相关文章

  1. Java实现蓝桥杯模拟组织晚会

    问题描述 小明要组织一台晚会,总共准备了 n 个节目.然后晚会的时间有限,他只能最终选择其中的 m 个节目. 这 n 个节目是按照小明设想的顺序给定的,顺序不能改变. 小明发现,观众对于晚上的喜欢程度 ...

  2. Java实现蓝桥杯模拟递增的数

    问题描述 一个正整数如果任何一个数位不大于右边相邻的数位,则称为一个数位递增的数,例如1135是一个数位递增的数,而1024不是一个数位递增的数. 给定正整数 n,请问在整数 1 至 n 中有多少个数 ...

  3. Java实现蓝桥杯模拟正整数序列的数量

    问题描述 小明想知道,满足以下条件的正整数序列的数量: 1. 第一项为 n: 2. 第二项不超过 n: 3. 从第三项开始,每一项小于前两项的差的绝对值. 请计算,对于给定的 n,有多少种满足条件的序 ...

  4. Java实现蓝桥杯模拟元音单词的验证

    问题描述 小明对类似于 hello 这种单词非常感兴趣,这种单词可以正好分为四段,第一段由一个或多个辅音字母组成,第二段由一个或多个元音字母组成,第三段由一个或多个辅音字母组成,第四段由一个或多个元音 ...

  5. Java实现蓝桥杯模拟存储转换

    问题描述 在计算机存储中,15.125GB是多少MB? 答案提交 这是一道结果填空的题,你只需要算出结果后提交即可.本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分. pac ...

  6. Java实现蓝桥杯模拟约数的个数

    问题描述 1200000有多少个约数(只计算正约数). 答案提交 这是一道结果填空的题,你只需要算出结果后提交即可.本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分. pac ...

  7. Java实现蓝桥杯模拟递增三元组

    问题描述 在数列 a[1], a[2], -, a[n] 中,如果对于下标 i, j, k 满足 0<i<j<k<n+1 且 a[i]<a[j]<a[k],则称 a ...

  8. Java实现蓝桥杯模拟带九9的数的个数

    问题描述 在1至2019中,有多少个数的数位中包含数字9? 注意,有的数中的数位中包含多个9,这个数只算一次.例如,1999这个数包含数字9,在计算只是算一个数. 答案提交 这是一道结果填空的题,你只 ...

  9. Java实现蓝桥杯模拟树的叶结点数量

    问题描述 一棵包含有2019个结点的树,最多包含多少个叶结点? 答案提交 这是一道结果填空的题,你只需要算出结果后提交即可.本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分. ...

随机推荐

  1. [hdu4498]离散化,simpson求积分

    题意:,求这个函数在[0,100]上的图像的长度. 思路:采用离散化的思想,求出所有交点 ,把交点排序,把[0,100]分成若干个小区间,这样原函数在每个小区间上的图像属于某一个二次函数或者是一条直线 ...

  2. nexus 启用ldap认证

    使用自己搭建的openldap 使用用户中心的openldap 修改完后,重启服务 # cd /opt/sonarqube-6.7.3/bin/linux-x86-64/ && ./s ...

  3. 「雕爷学编程」Arduino动手做(27)——BMP280气压传感器

    37款传感器与模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种的.鉴于本人手头积累了一些传感器和模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的,这里 ...

  4. React:Lifting State Up

    在学习React的组件的时候,我也好奇组件间需要共享状态或通信的时候,React是如何处理的.在文档的QUICK START的提到Lifting State Up(状态提升),并不是什么新鲜东西.只是 ...

  5. POJ3693 Maximum repetition substring 后缀数组

    POJ - 3693 Maximum repetition substring 题意 输入一个串,求重复次数最多的连续重复字串,如果有次数相同的,则输出字典序最小的 Sample input ccab ...

  6. Django模板之模板变量

    深度查询句点符(.)在模板语言中有特殊的含义. 当模版系统遇到点("."),它将以这样的顺序查询: 字典查询(Dictionary lookup) 属性或方法查询(Attribut ...

  7. Sql Server数据库导入Excel、txt数据详解,新人必看

    转自个人原创 https://blog.csdn.net/qq_15170495/article/details/104591606 数据库的要想导入数据,列的映射很是关键,只有列名匹配好,系统才知道 ...

  8. JavaDoc文件如何生成

    目录 如何使用 1.通过命令行生成JavaDoc文档 2.IDEA如何配置后生成javadoc文档 javadoc命令是用来生成自己的API文档的 参考信息: @author 作者名 @version ...

  9. 10个典型的JavaScript面试题

    问题1:作用域 考虑如下代码:   JavaScript   1 2 3 4 5 6 7 (function() {   var a = b = 5;   })();   console.log(b) ...

  10. tp5插入百万条数据处理优化

    <?php namespace app\index\controller; use think\Controller; use think\Db; class Charu extends Con ...