news 2026/4/20 1:44:49

图论——求孤岛面积、淹没孤岛(python)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
图论——求孤岛面积、淹没孤岛(python)

思路:

1.求孤岛面积

孤岛指的是四周都是水的岛屿。遍历边界周围的岛屿,将它们全部淹没(grid[i][j]==0),最后再次扫描网格,统计1的个数。

#求孤岛面积 # 4 5 # 1 1 1 1 0 # 1 1 0 1 0 # 1 1 0 0 0 # 0 0 0 0 0 # 输出: 0 def lonelyIslandArea(grid,m,n): dirs=[(0,1),(0,-1),(1,0),(-1,0)] #四个方向 #递归逻辑 def dfs(x,y): if x<0 or x>=m or y<0 or y>=n: #判断是否越界 return if grid[x][y]==0: #判断是否为陆地 return grid[x][y]=0 #将该陆地沉没 for dx,dy in dirs: dfs(x+dx,y+dy) #遍历网格 for i in range(m): for j in range(n): if grid[i][j]==1 and (i==0 or i==m-1 or j==0 or j==n-1): dfs(i,j) #对于边缘上的陆地,调用dfs置为0 #再次遍历岛屿,统计孤岛面积 res=0 for i in range(m): for j in range(n): if grid[i][j]==1: res+=1 print(res) return res def main(): m,n=map(int,input().split()) grid=[] for i in range(m): line=list(map(int,input().split())) grid.append(line) lonelyIslandArea(grid,m,n) if __name__=="__main__": main()

2.淹没孤岛

遍历边界上的所有岛,递归搜索相连的岛屿,全部修改标记为2。最后遍历一遍图,将所有2修改为1,将所有1修改为0,返回网格图,完成淹没孤岛。

#淹没孤岛 # 4 5 # 1 1 0 0 0 # 1 1 0 0 0 # 0 0 1 0 0 # 0 0 0 1 1 # 下面是输出 # 1 1 0 0 0 # 1 1 0 0 0 # 0 0 0 0 0 # 0 0 0 1 1 # import sys # sys.setrecursionlimit(1000000) def yanmoIsland(grid,m,n): dirs=[(0,1),(0,-1),(1,0),(-1,0)] def dfs(x,y): if x<0 or x>=m or y<0 or y>=n: return if grid[x][y]==0 or grid[x][y]==2: return grid[x][y]=2 for dx,dy in dirs: dfs(x+dx,y+dy) for i in range(m): for j in range(n): if (i==0 or i==m-1 or j==0 or j==n-1) and grid[i][j]==1: #是边缘陆地,才能进入dfs递归 dfs(i,j) for i in range(m): for j in range(n): if grid[i][j]==2: grid[i][j]=1 elif grid[i][j]==1: grid[i][j]=0 for i in grid: print(" ".join(map(str,i))) return grid def main(): m,n=map(int,input().split()) grid=[] for i in range(m): line=list(map(int,input().split())) grid.append(line) yanmoIsland(grid,m,n) if __name__=="__main__": main()
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/20 1:37:49

uni-app怎么实现弹窗 uni-app自定义模态框遮罩层【代码】

uni-app自定义弹窗遮罩层不跟随滚动的正确做法是&#xff1a;避免使用position:fixed&#xff0c;改用position:absolute100vw/100vh&#xff0c;H5端加transform:translateZ(0)硬件加速&#xff0c;App端需将遮罩挂载到page外层。uni-app 弹窗遮罩层不跟随滚动怎么办遮罩层固定…

作者头像 李华
网站建设 2026/4/20 1:36:14

我重新梳理了一遍 RAG,终于明白它不只是接个向量库

文章目录一、引言二、为什么大模型需要RAG&#xff1f;三、RAG 到底是怎么跑起来的&#xff1f;四、第一步&#xff1a;先让知识进入系统1. PDF 为什么麻烦&#xff1f;2. 为什么预处理很关键&#xff1f;五、为什么切片是 RAG 里最容易被低估的一步&#xff1f;1. 固定长度切片…

作者头像 李华
网站建设 2026/4/20 1:31:13

计算机毕业设计:Python农产品价格与销量关联分析系统 Django框架 数据分析 可视化 大数据 大模型 机器学习(建议收藏)✅

1、项目介绍 技术栈 采用 Python 语言开发&#xff0c;基于 Django 框架搭建后端服务&#xff0c;使用 MySQL 数据库进行数据存储&#xff0c;前端结合 HTML 与 Echarts 可视化库实现数据展示。 功能模块农产品价格区间分布农产品销量分布农产品不同省份销量分布农产品…

作者头像 李华
网站建设 2026/4/20 1:15:42

STTN算法研究

STTN(Spatial-Temporal Transformer Network,空间-时间变换网络)是一种前沿的深度学习架构,专为视频修复任务设计,特别在处理动态场景下的字幕去除、物体移除等应用中展现出卓越性能。与传统专注于静态图像修复的算法不同,STTN通过联合建模空间和时间维度的信息,有效解决…

作者头像 李华