当前位置: 首页 > news >正文

04孤岛的总面积 图论

\101. 孤岛的总面积

题目描述

给定一个由 1(陆地)和 0(水)组成的矩阵,岛屿指的是由水平或垂直方向上相邻的陆地单元格组成的区域,且完全被陆地单元格包围。孤岛是那些位于矩阵内部、所有单元格都不接触边缘的岛屿。

现在你需要计算所有孤岛的总面积,岛屿面积的计算方式为组成岛屿的陆地的总数。

输入描述

第一行包含两个整数 N, M,表示矩阵的行数和列数。之后 N 行,每行包含 M 个数字,数字为 1 或者 0。

输出描述

输出一个整数,表示所有孤岛的总面积,如果不存在孤岛,则输出 0。

输入示例
4 5
1 1 0 0 0
1 1 0 0 0
0 0 1 0 0
0 0 0 1 1
输出示例
1
提示信息

img

在矩阵中心部分的岛屿,因为没有任何一个单元格接触到矩阵边缘,所以该岛屿属于孤岛,总面积为 1。

数据范围:

1 <= M, N <= 50。


#include<iostream>
#include<vector>
using namespace std;
int dir[4][2] = {{0,1},{0,-1},{-1,0},{1,0}};
void dfs(int x,int y,vector<vector<int>>& grid)
{ //本题的grid发挥了visited的作用,所以只需要找周围的陆地即可(访问过的就变成了海洋了)//如果是海水,直接返回,不做处理if(grid[x][y]==0){return;}//边界及其相连陆地的陆地变成海洋grid[x][y]=0;for(int i=0;i<4;i++){int nextx = x + dir[i][0];int nexty = y + dir[i][1];if(nextx<0 || nextx>=grid.size() || nexty<0 || nexty>=grid[0].size()){continue;}dfs(nextx,nexty,grid);}
}
int main(void)
{int n,m;cin >> n >> m;vector<vector<int>> grid(n,vector<int>(m,0));for(int i=0;i<n;i++){for(int j=0;j<m;j++){cin >> grid[i][j];}}//遍历边界,将边界上的陆地以及与其相连的陆地全部变成海洋,剩余grid中的陆地就是孤岛的总面积for(int i=0;i<n;i++){if(grid[i][0]==1) dfs(i,0,grid);if(grid[i][m-1]==1) dfs(i,m-1,grid);}for(int j=0;j<m;j++){if(grid[0][j]==1) dfs(0,j,grid);if(grid[n-1][j]==1) dfs(n-1,j,grid);}int result = 0;for(int i=0;i<n;i++){for(int j=0;j<m;j++){if(grid[i][j]==1){result++;}}}cout << result;return 0;
}
http://www.jsqmd.com/news/879099/

相关文章:

  • 高性能Python多智能体建模框架:Mesa 3.0架构解析与工程实践指南
  • 基于概率随机森林的天文大数据分类:从VMC巡天中挖掘河外天体
  • 代谢流量组学质量键合体与分段仿射近似算法应用【附算法】
  • B站视频策划效率提升300%的ChatGPT实战手册(含18个领域专属Prompt库+自动打标/分镜/口播时长优化工具链)
  • 3大止损策略拯救你的交易:backtrader实战指南
  • 独立开发者如何利用Taotoken Token Plan套餐优化个人项目成本
  • 3分钟学会:用novel-downloader轻松保存网络小说的终极指南
  • LLM 只是开始,Agentic Workflow 才是生产力的真正解锁方式
  • 【DeepSeek推理加速实战指南】:20年AI系统优化专家亲授7大低开销部署技巧
  • 【太阳能】基于matlab PEM电解模拟了24小时太阳能绿色氢电厂(每小时太阳能发电量、氢气产量、用水量、储罐动态以及每公斤H₂的成本【含Matlab源码 15561期】
  • 上下文是新的算力吗?
  • 镀锌,会削弱钢筋锚固力吗?
  • B站m4s视频格式转换:5秒极速保存你的珍贵收藏
  • DeepSeek R1工具调用全链路解析:从API鉴权、参数对齐到响应流式处理的7步黄金流程
  • 3分钟为Blender相机添加真实抖动:Camera Shakify新手完全指南
  • 使用Taotoken CLI工具一键配置开发环境,简化团队协作的接入流程
  • 端板连接节点中抗拉承载力和撬力计算的探讨
  • Diablo Edit2:暗黑破坏神II角色存档编辑器的终极指南与快速上手教程
  • MD-Editor-V3 编辑器查找替换功能深度解析与实现原理
  • 在多地域部署服务中体验Taotoken路由能力对API延迟的优化
  • DeepSeek边缘推理性能翻倍实录(ARMv8+INT4量化+内存零拷贝优化全披露)
  • 智能体系统设计简明教程
  • DeepSeek本地化部署最后窗口期:2024年Q4起将强制绑定云认证服务(附3种合规离线授权迁移路径)
  • 高效拦截微信撤回消息:WeChatIntercept一站式解决方案
  • 表贴薄膜电容
  • 多保真度机器学习加速卟啉-粘土体系激子动力学模拟
  • 如何解决多语言语音识别乱码问题:Vosk API的字符编码终极指南
  • 实木地板选择之重蚁木
  • DeepSeek推理成本骤降63%:我用这5个开源工具+自研监控体系实现毫秒级成本优化
  • TV Bro电视浏览器终极指南:3步解决智能电视上网难题