油田计数与冰淇淋球面积周长计算
油田计数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/7/5 12:24:20 阅读更多 →
【强烈推荐】智能体设计模式:从小白到大神必备的大模型系统架构指南,看完就能用,建议收藏!

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

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

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

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

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

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

最新新闻

Azure Local离线模式采购(系列篇之七)

Azure Local离线模式采购(系列篇之七)

0. 重要定位(先看清 Acquire 在做什么) ⚠️ Acquire ≠ 部署完成。Acquire 阶段仅完成 Azure 资源创建及部署介质获取,Virtual Appliance 尚未部署到本地数据中心。完整的生命周期是: Acquire → Deploy → Configure → Operate…

2026/7/5 13:12:06 阅读更多 →
杭州老板IP打造运营公司怎么选?

杭州老板IP打造运营公司怎么选?

选择杭州的老板IP打造运营公司时,可以从以下几个方面进行考量:一、明确需求与目标核心需求:首先明确你希望通过IP打造实现什么目的。是增加品牌知名度、提升客户信任度,还是直接促进销售转化? 行业特性:根据…

2026/7/5 13:12:06 阅读更多 →
input_report_key + input_sync:按键事件的正确报告姿势

input_report_key + input_sync:按键事件的正确报告姿势

input_report_key input_sync:按键事件的正确报告姿势这个仓库已经开源!所有教程,主线内核移植,跑新版本imx-linux/uboot都在这里,或者一起来尝试跑7.1的Linux!欢迎各位大佬观摩!喜欢的话点个⭐…

2026/7/5 13:10:06 阅读更多 →
《南街面包店》 松雪酥|小说|txt下载|番外|全文免费阅读

《南街面包店》 松雪酥|小说|txt下载|番外|全文免费阅读

南街面包店 松雪酥|小说|txt下载|番外|全文免费阅读资料可下载《南街面包店》松雪酥 全文https://pan.baidu.com/s/1lewzOmQuG2M2xEELvONyzQ?pwd2bb8 English Practice Set 61 个人练习草稿,随便记几道题。Part 1 Vocabulary Choose the best word.She opened a …

2026/7/5 13:08:05 阅读更多 →
算法优化中的数学建模与理论界限分析的技术7

算法优化中的数学建模与理论界限分析的技术7

引言算法优化的核心目标与意义数学建模与理论界限分析在算法优化中的作用文章结构与内容概览数学建模基础算法问题的数学抽象方法离散与连续问题的形式化描述目标函数与约束条件的定义常见数学模型类型线性规划与非线性规划动态规划与贪心算法的数学框架图论模型(如…

2026/7/5 13:08:05 阅读更多 →
Agentic AI:聊天机器人到自主执行系统,从岗位要求反推能力栈

Agentic AI:聊天机器人到自主执行系统,从岗位要求反推能力栈

聊《Agentic AI:聊天机器人到自主执行系统,从岗位要求反推能力栈》之前,先说一句实在的:别急着背概念,先看它在真实项目里到底解决什么问题。摘要这篇面向关注 AI 产品化和自动化系统的开发者,但不会把“Ag…

2026/7/5 13:02:02 阅读更多 →

日新闻

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 阅读更多 →

月新闻