投稿  收藏 

题目信息

题目类型
决赛
题目年份
2023
题目题型
编程题
关 键 词
香蕉田

题目题干

第 7 题    编程题

香蕉田

编程实现

小猴有一片矩形香蕉林,香蕉林一共被分成了 n x m 个小块,每个小块上会有一颗香蕉树或者是一块空地。我们用 0 表示一块空地,用 1 表示一颗香蕉树,香蕉林之外可以视作全部是空地。

小猴认为一个香蕉田由聚在一起的 1 相连接而组成(上下左右相邻)。

在一个香蕉田 A 中,可以从中选出若干个香蕉树,使得这些香蕉树可以通过上、下、左、右方向连接构成一个“环”。

如果另一个香蕉田 B 所占据的格子全部位于这个“环”内部,就将香蕉田 B 视作香蕉田A 的子香蕉田。

若 B 是 A 的子香蕉田,C 是 B 的子香蕉田,那么 C 也是 A 的子香蕉田。

例如,有 5 x 5 的香蕉林:

第 7 题    编程题 香蕉田  编程实现  小猴有一片矩形香蕉林,香蕉林一共被分成了 n x m 个小块,每个小块上会有一颗香蕉树或者是一块空地。我们用 0 表示一块空地,用 1 表示一颗香蕉树,香蕉林之外可以视作全部是空地。  小猴认为一个香蕉田由聚在一起的 1 相连接而组成(上下左右相邻)。  在一个香蕉田 A 中,可以从中选出若干个香蕉树,使得这些香蕉树可以通过上、下、左、右方向连接构成一个“环”。  如果另一个香蕉田 B 所占据的格子全部位于这个“环”内部,就将香蕉田 B 视作香蕉田A 的子香蕉田。  若 B 是 A 的子香蕉田,C 是 B 的子香蕉田,那么 C 也是 A 的子香蕉田。  例如,有 5 x 5 的香蕉林:    其中香蕉田有两个,分别用蓝色区域和绿色区域来表示,但是绿色区域的香蕉田是蓝色区域香蕉田的子香蕉田。如果不统计子香蕉田的个数,那么该香蕉林中只有一个香蕉田。  现在,请你帮助小猴统计一下香蕉林中一共有多少个香蕉田。在进行统计时不需要统计子香蕉田的数目。  输入描述  第一行,包含一个整数 T,表示有 T 组测试数据。( 1≤T≤10 )  对于每一组数据:  第一行包含两个整数 n,m,表示香蕉林的大小。( 1≤n,m≤50 )  接下来的 n 行,每行包含 m 个字符,保证字符只可能是 0 或 1。  输出描述  对于每组数据,输出一行,包含一个整数表示答案。    输入样例  2 5 5 01111 11001 10101 10001 11111 5 6 111111 100001 010101 100001 111111 输出样例  1 3 样例说明  对于第一组数据,包含两个香蕉田,下面用不同的颜色进行了区分:    绿色香蕉田在蓝色香蕉田的“环”内部,所以绿色香蕉田是蓝色香蕉田的子香蕉田,答案为 1。  对于第二组数据,包含三个香蕉田,下面用不同的颜色进行了区分:    注意橙色香蕉田并不是蓝色香蕉田或者绿色香蕉田的子香蕉田 ,因为蓝色香蕉田和绿色香蕉田中均没有“环”,答案为 3。

其中香蕉田有两个,分别用蓝色区域和绿色区域来表示,但是绿色区域的香蕉田是蓝色区域香蕉田的子香蕉田。如果不统计子香蕉田的个数,那么该香蕉林中只有一个香蕉田。

现在,请你帮助小猴统计一下香蕉林中一共有多少个香蕉田。在进行统计时不需要统计子香蕉田的数目。

输入描述

第一行,包含一个整数 T,表示有 T 组测试数据。( 1≤T≤10 )

对于每一组数据:

第一行包含两个整数 n,m,表示香蕉林的大小。( 1≤n,m≤50 )

接下来的 n 行,每行包含 m 个字符,保证字符只可能是 0 或 1。

输出描述

对于每组数据,输出一行,包含一个整数表示答案。

 

输入样例

2
5 5
01111
11001
10101
10001
11111
5 6
111111
100001
010101
100001
111111

输出样例

1
3

样例说明

对于第一组数据,包含两个香蕉田,下面用不同的颜色进行了区分:

第 7 题    编程题 香蕉田  编程实现  小猴有一片矩形香蕉林,香蕉林一共被分成了 n x m 个小块,每个小块上会有一颗香蕉树或者是一块空地。我们用 0 表示一块空地,用 1 表示一颗香蕉树,香蕉林之外可以视作全部是空地。  小猴认为一个香蕉田由聚在一起的 1 相连接而组成(上下左右相邻)。  在一个香蕉田 A 中,可以从中选出若干个香蕉树,使得这些香蕉树可以通过上、下、左、右方向连接构成一个“环”。  如果另一个香蕉田 B 所占据的格子全部位于这个“环”内部,就将香蕉田 B 视作香蕉田A 的子香蕉田。  若 B 是 A 的子香蕉田,C 是 B 的子香蕉田,那么 C 也是 A 的子香蕉田。  例如,有 5 x 5 的香蕉林:    其中香蕉田有两个,分别用蓝色区域和绿色区域来表示,但是绿色区域的香蕉田是蓝色区域香蕉田的子香蕉田。如果不统计子香蕉田的个数,那么该香蕉林中只有一个香蕉田。  现在,请你帮助小猴统计一下香蕉林中一共有多少个香蕉田。在进行统计时不需要统计子香蕉田的数目。  输入描述  第一行,包含一个整数 T,表示有 T 组测试数据。( 1≤T≤10 )  对于每一组数据:  第一行包含两个整数 n,m,表示香蕉林的大小。( 1≤n,m≤50 )  接下来的 n 行,每行包含 m 个字符,保证字符只可能是 0 或 1。  输出描述  对于每组数据,输出一行,包含一个整数表示答案。    输入样例  2 5 5 01111 11001 10101 10001 11111 5 6 111111 100001 010101 100001 111111 输出样例  1 3 样例说明  对于第一组数据,包含两个香蕉田,下面用不同的颜色进行了区分:    绿色香蕉田在蓝色香蕉田的“环”内部,所以绿色香蕉田是蓝色香蕉田的子香蕉田,答案为 1。  对于第二组数据,包含三个香蕉田,下面用不同的颜色进行了区分:    注意橙色香蕉田并不是蓝色香蕉田或者绿色香蕉田的子香蕉田 ,因为蓝色香蕉田和绿色香蕉田中均没有“环”,答案为 3。

绿色香蕉田在蓝色香蕉田的“环”内部,所以绿色香蕉田是蓝色香蕉田的子香蕉田,答案为 1。

对于第二组数据,包含三个香蕉田,下面用不同的颜色进行了区分:

第 7 题    编程题 香蕉田  编程实现  小猴有一片矩形香蕉林,香蕉林一共被分成了 n x m 个小块,每个小块上会有一颗香蕉树或者是一块空地。我们用 0 表示一块空地,用 1 表示一颗香蕉树,香蕉林之外可以视作全部是空地。  小猴认为一个香蕉田由聚在一起的 1 相连接而组成(上下左右相邻)。  在一个香蕉田 A 中,可以从中选出若干个香蕉树,使得这些香蕉树可以通过上、下、左、右方向连接构成一个“环”。  如果另一个香蕉田 B 所占据的格子全部位于这个“环”内部,就将香蕉田 B 视作香蕉田A 的子香蕉田。  若 B 是 A 的子香蕉田,C 是 B 的子香蕉田,那么 C 也是 A 的子香蕉田。  例如,有 5 x 5 的香蕉林:    其中香蕉田有两个,分别用蓝色区域和绿色区域来表示,但是绿色区域的香蕉田是蓝色区域香蕉田的子香蕉田。如果不统计子香蕉田的个数,那么该香蕉林中只有一个香蕉田。  现在,请你帮助小猴统计一下香蕉林中一共有多少个香蕉田。在进行统计时不需要统计子香蕉田的数目。  输入描述  第一行,包含一个整数 T,表示有 T 组测试数据。( 1≤T≤10 )  对于每一组数据:  第一行包含两个整数 n,m,表示香蕉林的大小。( 1≤n,m≤50 )  接下来的 n 行,每行包含 m 个字符,保证字符只可能是 0 或 1。  输出描述  对于每组数据,输出一行,包含一个整数表示答案。    输入样例  2 5 5 01111 11001 10101 10001 11111 5 6 111111 100001 010101 100001 111111 输出样例  1 3 样例说明  对于第一组数据,包含两个香蕉田,下面用不同的颜色进行了区分:    绿色香蕉田在蓝色香蕉田的“环”内部,所以绿色香蕉田是蓝色香蕉田的子香蕉田,答案为 1。  对于第二组数据,包含三个香蕉田,下面用不同的颜色进行了区分:    注意橙色香蕉田并不是蓝色香蕉田或者绿色香蕉田的子香蕉田 ,因为蓝色香蕉田和绿色香蕉田中均没有“环”,答案为 3。

注意橙色香蕉田并不是蓝色香蕉田或者绿色香蕉田的子香蕉田 ,因为蓝色香蕉田和绿色香蕉田中均没有“环”,答案为 3。

 
 

答案解析

相关题目

第 7 题    编程题 香蕉田 编程实现 小猴有一片矩形香蕉林,香蕉林一共被分成了 n x m 个小块,每个小块上会有一颗香蕉树或者是一块空地。我们用 0 表示一块空地,用 1 表示一颗香蕉树,
第 6 题    编程题 方块城堡 编程实现 为了迎接新同学,学校用方块打算在校门口堆一座城堡,让同学们拍照打卡。老师标记了 n 个位置,这些位置从左到右排成一整排,编号从 1 到 n。他原本打算
第 5 题    编程题 地宫宝藏 编程实现: 现有地宫里埋藏着一些宝藏,已知地宫的藏宝房间有n间,且呈环形分布,每个房间都有一定价值的宝藏,由于机关设置,你每取走一个房间的宝藏,相邻房间的房门就
第 4 题    编程题 连连看 编程实现: 现在有一个连连看游戏。场上有n张卡牌,每张卡牌上有一个分数,只要将两张卡牌连到一起,就会合成一张新的卡牌,卡牌上的分数为之前两张卡牌的分数之和,你将获
第 3 题   编程题 植物大战僵尸 编程实现: 为了应对僵尸,需要选取多种不同的植物,现有n种植物可供选择,已知每种植物的攻击力,想要选取攻击力之和为k的植物,相同植物不能重复选择,有多少种不同
第 2 题    编程题 算式 编程实现: 有一道算式看不清了,只知道是a [ ] b = c,已知a,b,c都是1到9之间的不同数字,输入+、-、*、/其中一种运算,输出算式有多少种可能。 例
第 1 题    编程题 灯的开关 编程实现: 现在有n盏灯,都是亮着的,编号为1到n,每一盏灯都有一个独立的开关,现在按一下编号为2的倍数的灯的开关,再按一下编号为3的倍数的灯的开关,再按一下编
第 7 题    编程题 两个背包 时间限制:1s 内存限制:128MB (注:input()括号中不允许添加任何提示语) 现有两个背包和n(2≤n≤500)个物品,n个物品的重量由输入确定,
第 6 题    编程题 报数游戏 时间限制:1s 内存限制:128MB (注:input()括号中不允许添加任何提示语) 有n(6≤n≤100)个小伙伴围成一圈做游戏,分别编号为1~n。游戏
第 5 题    编程题 毕业旅行 时间限制:1s 内存限制:128MB (注:input()括号中不允许添加任何提示语) 小王要从一个城市出发前往另一个城市进行一场毕业旅行,在此期间会经过m

提示声明

  • 免责声明:本站资源均来自网络或者用户投稿,仅供用于学习和交流:如有侵权联系删除!
  • 温馨提示:本文属于积分文章,需要充值获得积分或升级VIP会员,也可在会员中心投稿获取。

猜你喜欢