【蓝桥杯省赛真题37】python农田划分 中小学青少年组蓝桥杯比赛 算法思维python编程省赛真题解析

目录

python农田划分

一、题目要求

1、编程实现

2、输入输出

二、算法分析

三、程序编写

四、程序说明

五、运行结果

六、考点分析

七、 推荐资料

1、蓝桥杯比赛

2、考级资料

3、其它资料


python农田划分

第十三届蓝桥杯青少年组python比赛省赛真题

一、题目要求

(注:input()输入函数的括号中不允许添加任何信息)

1、编程实现

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

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


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

2、输入输出

输入描述:第一行输入两个整数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

二、算法分析

  1. 题目相对而言有一定的难度,难在如何辨别是否独立模块
  2. 具体的就是判断二维矩阵中的上下左右四个方向的值
  3. 然后从1到N逐个进行判断是否是整数
  4. 如果是整数就进行输出即可

三、程序编写

n, m = map(int,input().split(','))
r = []
res = 0
def f(x, y):
    r[x][y] = 'C'#表示访问过check
    if x>0:
        if r[x-1][y] == 'R':
            f(x-1, y)
    if x<n-1:
        if r[x+1][y] == 'R':
            f(x+1, y)
    if y > 0:
        if r[x][y-1] == 'R':
            f(x, y-1)
    if y < m-1:
        if r[x][y+1] == 'R':
            f(x, y+1)

for i in range(n):
    t = input().split(',')
    r.append(t)

for i in range(n):
    for j in range(m):
        if r[i][j] == 'R':
            res += 1
            f(i, j)
print(res)

四、程序说明

  1. 首先,程序通过 n, m = map(int, input().split(',')) 从输入中获取矩阵的大小,其中 n 表示行数,m 表示列数。
  2. 接下来,创建一个空的二维数组 r 用于存储输入的矩阵。
  3. 定义一个递归函数 f(x, y) 用于遍历矩阵中的元素。
  4. 这个函数首先将当前位置的元素设为 'C',表示已经访问过。
  5. 接着分别访问当前位置的上下左右四个方向的值,如果四个方向上有 'R',则继续递归调用 f 函数
  6. 在遍历完整个矩阵后,使用嵌套循环遍历每个元素,如果元素为 'R',则调用 f 函数进行遍历,并将结果累加到 res 变量上
  7. 最后通过print函数打印结果 res,即矩阵中连续的 'R' 的数量。

五、运行结果

4,4
R,R,R,X
R,X,R,X
X,X,X,R
R,X,X,X

3

六、考点分析

难度级别:难,这题相对而言还是有一点小难度,难在如何进行上下左右检测,具体主要考查如下:

  1. 学会分析题目,找到解题思路
  2. 学会递归函数的定义和使用
  3. input函数:Python 中 input() 函数接受一个标准输入数据,返回为 string 类型。
  4. int函数:强制将传入对象转换成整数类型
  5. split函数:按照指定的分隔符进行分割
  6. map函数:将指定的对象按照指定的函数进行迭代,在这里是将时分秒字符串类型数据按int整数类型数字返回输出(相当于多个变量强制类型转化)
  7. list函数:强制将参数转化成列表对象
  8. 学会列表的相关操作:列表声明、取数、遍历等等
  9. 学会for循环的使用:for循环可以遍历任何有序的项及列表元素等等。
  10. range函数:rang(a,b),循环的时候是不包括b的,所以我们这个案例中要转变一下,要想包含b,就应该写成range(a,b+1)
  11. 学会if...条件判断语句的使用:满足条件才执行相应的程序
  12. 学会if...else双分支语句的使用:满足条件执行一种处理程序,不满足执行另一种处理程序
  13. print函数:用于打印输出,最常见的一个函数。
  14. 充分掌握for循环,递归函数和列表相关操作函数的使用

PS:方式方法有多种,小朋友们只要能够达到题目要求即可!

七、 推荐资料

  • 所有考级比赛学习相关资料合集【推荐收藏】

1、蓝桥杯比赛

  • 蓝桥杯python选拔赛真题详解

  • 蓝桥杯python省赛真题详解

  • 蓝桥杯python国赛真题详解

  • 历届蓝桥杯科技素养计算思维真题解析

2、考级资料

  • python等级一级真题解析【电子学会】

  • python等级二级真题解析【电子学会】

  • python等级三级真题解析【电子学会】

  • python等级四级真题解析【电子学会】

3、其它资料

  • 初学python100例

  • 历届蓝桥杯scratch国赛真题解析
  • 历届蓝桥杯scratch省赛真题解析
  • 历届蓝桥杯scratch STEMA选拔赛真题解析
  • 历届蓝桥杯科技素养计算思维真题解析
  • 画图-scratch编程考级99图
  • 电子学会历年scratch等级考试一级真题解析
  • 电子学会历年scratch等级考试二级真题解析
  • 电子学会历年scratch等级考试三级真题解析
  • 电子学会历年scratch等级考试四级真题解析
  • 零基础学习scratch3.0【入门教学 免费】
  • 零基础学习scratch3.0【视频教程 114节 免费】

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

kafka学习笔记02(小滴课堂)

Kafka命令行生产者发送消息和消费者消费消息实战 已存在的kafka不能重复创建。 broker设置的是1&#xff0c;factor大于broker了&#xff0c;所以报错。 生产者发送消息&#xff1a; kafka列表出现了新的kafka。 我们使用这个kafka。 我们启动消费者&#xff1a; 我们现在不从…

【dll解密】Dll加壳保护方案分析修复

分析背景 NGame游戏海外版出现了破解版&#xff0c;该版本在dump出游戏的dll中不能直接通过反编译工具查看修改后的游戏代码&#xff0c;导致无法确定外挂修改的直接逻辑点。本文主要针对AssemblyCSharp.dll模版&#xff0c;分析其dll保护的方法。 分析过程 1、拿到Encrypt_As…

【动手学深度学习-pytorch】 9.4 双向循环神经网络

在序列学习中&#xff0c;我们以往假设的目标是&#xff1a; 在给定观测的情况下 &#xff08;例如&#xff0c;在时间序列的上下文中或在语言模型的上下文中&#xff09;&#xff0c; 对下一个输出进行建模。 虽然这是一个典型情景&#xff0c;但不是唯一的。 还可能发生什么其…

【LVGL-使用SquareLine Studio设计器 】

LVGL-使用SquareLine Studio设计器 ■ 简介■ 安装■ SquareLine Studio移植到工程 ■ 简介 SquareLine Studio 设计器是一个付费软件。 ■ 安装 SquareLine Studio 设计器的下载地址 我们点击“WINDOWS”下载 SquareLine Studio 设计器&#xff0c;下载完成之后我们就会得到…

GIS硬核入门,二维地图是如何使用WGS84坐标系来转换成墨卡托投影的xyz地图瓦片切片的详细原理

前言 二维地图一般分成两种&#xff0c;一种是简化的道路地图视图&#xff0c;一种是卫星拍摄的高清影像地图。 四种坐标概念理解&#xff1a; 经度和纬度&#xff0c;对应地球上唯一的一个点&#xff08;例如&#xff1a;Google 使用世界大地测量系统 WGS84 标准&#xff0…

Day49:WEB攻防-文件上传存储安全OSS对象分站解析安全解码还原目录执行

目录 文件-解析方案-目录执行权限&解码还原 目录执行权限 解码还原 文件-存储方案-分站存储&OSS对象 分站存储 OSS对象存储 知识点&#xff1a; 1、文件上传-安全解析方案-目录权限&解码还原 2、文件上传-安全存储方案-分站存储&OSS对象 文件-解析方案-目…

数据结构之二叉树由浅入深(四)

目录 题外话 正题 第一题 第一题思路 第一题代码详解 第二题 第二题思路 第二题代码详解 第三题 第三题思路 第三题代码及详解 第四题 第四题思路 第四题代码及详解 第五题 第五题思路 第五题代码及详解 题外话 本来昨天就想写完这篇文章,怎么样是不是很大胆?…

ttkbootstrap界面美化系列之Notebook(四)

在简单的界面设计中&#xff0c;Notebook也是常用的组件之一&#xff0c;Notebook组件的引入可以根据标签来切换不同的界面。使得界面更有层次感&#xff0c;不必都挤在一个界面上。在tkinter中就有Notebook组件&#xff0c;在ttkbootstrap中&#xff0c;同样也对Notebook进行了…

Flutter开发之objectbox

Flutter开发之objectbox 在之前进行iOS开发的时候使用WCDB去进行管理数据库很方便&#xff0c;它支持ORM&#xff08;Object-Relational Mapping&#xff0c;对象关系映射&#xff09;&#xff0c;用于实现面向对象编程语言里不同类型系统的数据之间的转换。 那么在Flutter开发…

d3dcompiler_43.dll丢失的解决方法,快速解决win10系统错误问题

当系统提示“d3dcompiler_43.dll缺失”时&#xff0c;意味着计算机中缺少这一关键性动态链接库文件。该文件作为DirectX 3D编译器组件的一部分&#xff0c;对于许多依赖于DirectX技术的应用程序或游戏至关重要。这个错误通常会导致游戏或应用程序无法正常运行。为了解决这个问题…

java Web洗衣店管理系统用eclipse定制开发mysql数据库BS模式java编程jdbc

一、源码特点 JSP 洗衣店管理系统是一套完善的web设计系统&#xff0c;对理解JSP java 编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式开发。开发环境为TOMCAT7.0,eclipse开发&#xff0c;数据库为Mysql5.0&#xff0c;使用…

记一次dubbo provider获取不到dubbo.tag问题排查

1. 背景 项目里通过dubbo.taggray传递灰度标&#xff0c;但是上游consumer已经在attachment里面设置dubbo.gray了&#xff0c;下游却拿不到 2. 排查过程 2.1. 前提 先把源码下载下来&#xff0c;方便排查 详细可见&#xff1a;tps://blog.csdn.net/qq_26012495/article/det…

9、jenkins微服务持续集成(一)

文章目录 一、流程说明二、源码概述三、本地部署3.1 SpringCloud微服务部署本地运行微服务本地部署微服务3.2 静态Web前端部署四、Docker快速入门一、流程说明 Jenkins+Docker+SpringCloud持续集成流程说明 大致流程说明: 开发人员每天把代码提交到Gitlab代码仓库Jenkins从G…

烟草行业率先布局新质生产力,中国烟草11省40家公司已上线实在Agent数字员工

为了更好赋能烟草行业数智化转型发展需求&#xff0c;各地烟草集团公司都开始陆续展开数智化赋能培训。近日&#xff0c;杭州烟草临安分公司举办“人工智能作为企业新质生产力发展的落地探索”论坛会议&#xff0c;实在智能受邀出席&#xff0c;聚焦“TARS大模型及实在Agent数字…

武汉星起航:引领跨境电商新潮流,一站式服务助合作伙伴成功起航

武汉星起航电子商务有限公司是一家集自营亚马逊跨境电商与亚马逊卖家孵化服务于一体的公司。在创始人张振邦先生的引领下&#xff0c;公司凭借深厚的电子商务运营经验和对行业的深刻洞察&#xff0c;积极响应国家大力发展跨境电商行业的号召&#xff0c;为刚起步和未起步的合作…

vue3封装Element表格自适应

表格高度自适应 分页跟随表格之后 1. 满屏时出现滚动条 2. 不满屏时不显示滚动条 坑 表格设置maxHeight后不出现滚动条 解决方案 表格外层元素设置max-height el-table–fit 设置高度100% .table-box {max-height: calc(100% - 120px); } .el-table--fit {height: 100%; }示例代…

会声会影剪刀为什么灰色 会声会影分割素材的方法 会声会影视频制作教程 会声会影2023旗舰版下载 会声会影快捷键

会声会影是一款操作简单&#xff0c;功能齐全&#xff0c;适合新手使用的视频剪辑软件。在使用会声会影剪辑的过程中&#xff0c;我们一般需要使用【剪刀工具】&#xff0c;但有时会声会影剪刀是灰色无法使用的状态&#xff0c;这个时候该怎么办呢&#xff1f;本文将为大家介绍…

pytest--python的一种测试框架--简介

一、什么是接口测试 接口测试是软件测试的一种类型&#xff0c;用于验证不同软件系统之间的接口是否按照设计规范进行通信和交互。接口测试通常涉及以下方面&#xff1a; 功能性验证&#xff1a;确认接口按照规范执行预期的功能。 性能测试&#xff1a;验证接口在不同负载条…

木地板 VS 瓷砖,不同风格应该怎么选?福州中宅装饰,福州装修

不同装修风格应该怎么选择地板铺贴材质&#xff1f;是选择木地板还是瓷砖&#xff1f;以下分点阐述&#xff1a; ①现代简约风格 推荐使用瓷砖。因为瓷砖的表面光滑&#xff0c;能反射出灯光的倒影&#xff0c;营造出简洁明亮的视觉效果。同时&#xff0c;瓷砖耐磨、易清洁&am…

CNN卷积神经网络股票价格预测

部分代码&#xff1a; %% 清空环境变量 warning off % 关闭报警信息 close all % 关闭开启的图窗 clear % 清空变量 clc % 清空命令行 %% 重构数据 data_Trend xlsread("dataguOne.xlsx") dT …