刷题刷出新高度,偷偷领先!偷偷领先!偷偷领先! 关注我们,悄悄成为最优秀的自己!

简答题

农作物

题目描述:

有一块农田被划分为N*M块,农作物和杂草分布生长在农田中,其中农作物使用大写字母“R”表示,杂草使用大写字母“X”表示。请计算出农田中有几块独立的农作物区域(独立的农作物区域指该区域上下左右都被杂草围住,且N*M以外的区域都是杂草)。

例如:N=4,M=4,4*4的农田中农作物和杂草分布如下图:

这块4*4的农田中有3块独立的农作物区域(红色的3部分)。

输入描述:

第一行输入两个整数N和M(1≤N≤100,1≤M≤100),N表示农田的行数,M表示农田的列数,且两个正整数之间一个空格隔开

接下来的N行每行包括M个字符(字符只能为R或X),R表示农作物,X表示杂草,字符之间一个空格隔开

输出描述:

输出一个整数,表示N*M的农田中有几块独立的农作物区域


样例输入:

4 4
R R R X
R X R X
X X X R
R X X X

样例输出:

3

使用微信搜索喵呜刷题,轻松应对考试!

答案:

根据题目描述,我们可以使用深度优先搜索(DFS)算法来解决这个问题。首先,我们需要遍历农田中的每个位置,检查它是否是独立的农作物区域。对于每个位置,我们需要检查它的上下左右四个方向,看是否有杂草包围。如果是,则计数器加一。

解析:

【喵呜刷题小喵解析】:
这个题目可以使用深度优先搜索(DFS)算法来解决。首先,我们需要遍历农田中的每个位置,检查它是否是独立的农作物区域。对于每个位置,我们需要检查它的上下左右四个方向,看是否有杂草包围。如果是,则计数器加一。

具体的算法实现可以如下:

1. 创建一个二维数组,用于存储农田的状态,其中0表示杂草,1表示农作物。
2. 遍历农田中的每个位置,如果当前位置是农作物,则进行深度优先搜索。
3. 在深度优先搜索中,检查当前位置的上下左右四个方向,如果都是杂草,则计数器加一,并将当前位置及其上下左右四个方向都标记为已访问。
4. 最后,返回计数器的值,即为独立的农作物区域的数量。

需要注意的是,由于农田的大小可能很大,因此需要使用一个数组来记录每个位置是否已经被访问过,避免重复搜索。此外,为了避免越界,需要对上下左右四个方向的索引进行判断。
创作类型:
原创

本文链接:农作物 题目描述: 有一块农田被划分为N*M块,农作物和杂草分布生长在农田中,其中农作物使用大写字母

版权声明:本站点所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明文章出处。

让学习像火箭一样快速,微信扫码,获取考试解析、体验刷题服务,开启你的学习加速器!

分享考题
share