油田计数与冰淇淋球面积周长计算
油田计数Oil Deposits题目描述GeoSurvComp 地质调查公司负责探测地下油田。现在需要你编写一个程序来统计一块矩形区域内有多少个独立的油田。规则说明输入会给出一个由代表油田和*代表空地组成的二维网格一个油田定义为所有相邻的组成的集合相邻包括上下左右四个方向以及左上、右上、左下、右下四个对角线方向共 8 个方向输入包含多组测试数据每组数据第一行是两个整数n和m分别表示网格的行数和列数接下来n行每行是长度为m的字符串仅包含和*当输入的n和m均为 0 时表示输入结束。对于每组测试数据输出该网格中独立油田的数量。def youtian(): while True: n, m map(int, input().split()) if n 0 and m 0: break grid [] for _ in range(n): # 注意input().split() 会按空格拆分若输入是连续字符如*需用list(input().strip()) grid.append(list(input().strip())) # 方向数组8个方向上下左右四个对角线 dirs [(1,0), (-1,0), (0,-1), (0,1), (1,1), (-1,-1), (1,-1), (-1,1)] count 0 def dfs(x, y): # 将当前油田标记为已访问用*替代 grid[x][y] * for dx, dy in dirs: nx x dx ny y dy # 边界检查 检查是否是未访问的油田 if 0 nx n and 0 ny m and grid[nx][ny] : dfs(nx, ny) # 遍历整个网格统计油田数量 for i in range(n): for j in range(m): if grid[i][j] : count 1 dfs(i, j) print(count) if __name__ __main__: # 等号两侧加空格符合PEP8规范 youtian()冰淇凌统计问题所有冰淇淋球里面积最大的那个的面积是多少面积就是这个球里#的数量如果有多个冰淇淋球的面积并列最大他想知道其中周长最小的那个的周长是多少。import sys sys.setrecursionlimit(1000000) # 递归深度设更大适配N1000的情况 def ice_cream_blocks(): # 输入网格大小题目是N×N这里兼容N×M n int(input()) # 若题目是N×M改为 n, m map(int, input().split()) m n # 题目是N×N所以mn如果是通用N×M删掉这行 # 读取网格 grid [list(input().strip()) for _ in range(n)] # 标记是否访问过避免重复计算同一个冰淇淋球 visited [[False for _ in range(m)] for _ in range(n)] # 四个移动方向上下左右 dirs [(1, 0), (0, 1), (-1, 0), (0, -1)] max_area 0 # 记录最大面积 min_peri float(inf) # 记录最大面积对应的最小周长 def dfs(x, y): DFS遍历单个冰淇淋球返回面积和周长 nonlocal current_area, current_peri # 统计当前冰淇淋球的面积每访问一个#面积1 current_area 1 # 遍历四个方向计算周长递归遍历相邻# for dx, dy in dirs: nx, ny x dx, y dy # 情况1超出网格边界 → 周长1 if nx 0 or nx n or ny 0 or ny m: current_peri 1 # 情况2在网格内但不是#是.→ 周长1 elif grid[nx][ny] .: current_peri 1 # 情况3在网格内是#且未访问 → 递归遍历 elif not visited[nx][ny] and grid[nx][ny] #: visited[nx][ny] True dfs(nx, ny) # 遍历整个网格找所有冰淇淋球 for i in range(n): for j in range(m): # 找到未访问的#开始遍历一个新的冰淇淋球 if not visited[i][j] and grid[i][j] #: visited[i][j] True current_area 0 # 当前球的面积 current_peri 0 # 当前球的周长 dfs(i, j) # 遍历这个球的所有# # 更新最大面积和对应最小周长 if current_area max_area: max_area current_area min_peri current_peri # 面积相等时选周长更小的 elif current_area max_area: if current_peri min_peri: min_peri current_peri # 输出结果最大面积 对应最小周长 print(max_area, min_peri) if __name__ __main__: ice_cream_blocks()

相关新闻

程序员必藏:36个AI大模型术语详解,从小白入门到精通,一文读懂AI核心技术

程序员必藏:36个AI大模型术语详解,从小白入门到精通,一文读懂AI核心技术

【AI篇】36个AI关键术语,从概念开始认识AIAGI、AIGC、token、Transformer、RAG、提示词…朋友们,最近是不是被这些各式各样的AI相关的专业词汇,弄得头晕眼花,晕头转向。其实这些看着晦涩难懂的概念,背后都是些简单的逻…

2026/5/17 6:39:34 阅读更多 →
【强烈推荐】智能体设计模式:从小白到大神必备的大模型系统架构指南,看完就能用,建议收藏!

【强烈推荐】智能体设计模式:从小白到大神必备的大模型系统架构指南,看完就能用,建议收藏!

过去一年,「智能体(Agent)」这个词的含义悄悄变了。 最早大家聊的是: 模型够不够聪明? 回答像不像人? 而现在,越来越多团队在问的是: 它能不能自己判断? 能不能自己调用系…

2026/7/3 6:58:03 阅读更多 →
大模型智能体开发必备:Agent Skills框架全解析,收藏级学习资源

大模型智能体开发必备:Agent Skills框架全解析,收藏级学习资源

以下是支持Agent Skills开发范式的主流智能体框架全览,重点聚焦动态工具加载与渐进式披露能力,按成熟度与生态完整性排序,便于你快速选型与实施。 一、核心概念与判定标准 Agent Skills开发范式的核心是渐进式披露(Progressive Disclosure)&a…

2026/5/17 6:39:33 阅读更多 →

最新新闻

PMP 项目管理规划(Planning)学习专题指南

PMP 项目管理规划(Planning)学习专题指南

PMP 项目管理规划(Planning)学习专题指南 在PMP考试(尤其是2026新版)中,Planning(规划) 是Process领域(41%权重)的核心部分,也是零基础考生最需要重点掌握的模…

2026/7/5 12:13:45 阅读更多 →
深度学习实战:从图像文件夹到高效NPZ数据集的完整构建指南

深度学习实战:从图像文件夹到高效NPZ数据集的完整构建指南

1. 为什么需要NPZ格式数据集在深度学习项目中,数据预处理是模型训练前最关键的一步。原始图像通常以JPG、PNG等格式散落在不同文件夹中,这种存储方式存在三个明显问题:一是读取效率低,每次训练都需要重新解码图像;二是…

2026/7/5 12:13:45 阅读更多 →
实战|从零构建可重复与无重复双因素方差分析模型:步骤详解与案例解析

实战|从零构建可重复与无重复双因素方差分析模型:步骤详解与案例解析

1. 双因素方差分析入门:从生活案例理解核心概念第一次接触双因素方差分析时,我被那些数学符号绕得头晕。直到有次分析广告效果数据时才恍然大悟——这就像同时考察"投放时段"和"广告文案"两个因素对点击率的影响。双因素方差分析的本…

2026/7/5 12:13:45 阅读更多 →
R语言多分类逻辑回归变量筛选:最优子集与逐步回归实战

R语言多分类逻辑回归变量筛选:最优子集与逐步回归实战

当你面对一个包含数十个潜在预测变量的数据集,想要构建一个稳健的多分类预测模型时,最让你头疼的是什么?是模型精度总是不尽如人意,还是模型复杂到难以解释,甚至出现过拟合?很多数据分析师和研究者会不假思…

2026/7/5 12:11:45 阅读更多 →
R语言多分类逻辑回归特征筛选:逐步回归与Lasso实战指南

R语言多分类逻辑回归特征筛选:逐步回归与Lasso实战指南

1. 先搞清楚多分类逻辑回归里“最优子集”和“逐步回归”到底在解决什么问题如果你正在用R语言处理一个多分类问题,比如预测客户流失等级(高、中、低)、疾病分型(A、B、C)或者产品品类偏好,逻辑回归&#x…

2026/7/5 12:11:45 阅读更多 →
贝叶斯决策实战:从最小错误到最小风险,如何为你的AI模型选择最优策略?

贝叶斯决策实战:从最小错误到最小风险,如何为你的AI模型选择最优策略?

1. 贝叶斯决策:从直觉到数学公式第一次听说贝叶斯决策时,我正坐在工位上调试一个图像分类模型。当时遇到一个奇怪的现象:模型在测试集上准确率很高,但实际部署时总把一些重要客户照片误分类。主管走过来看了一眼说:&qu…

2026/7/5 12:07:44 阅读更多 →

日新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/5 0:03:34 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/5 0:03:34 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/5 0:07:38 阅读更多 →

周新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/5 0:03:34 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/5 0:03:34 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/5 0:07:38 阅读更多 →

月新闻