当前位置: 首页 > 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.rkmt.cn/news/1371256.html

相关文章:

  • 如何打造专属AI工作空间:Chatbox主题与界面个性化全攻略
  • kkFileView在Linux服务器上安装踩坑全记录:从字体乱码到Office组件报错的保姆级排错指南
  • 银河麒麟V4.0.2-sp4服务器刚装好,网络不通、软件装不上?保姆级配置三件套(网络/DNS/源)一次搞定
  • 掌握GWAS数据分析:3个实用技巧连接遗传数据与分析方法
  • 如何高效使用健康提醒工具:完整配置指南
  • yuzu模拟器完全指南:解决PC上畅玩Switch游戏的5大难题
  • ESG报告生成进入“零代码时代”:Gemini低代码配置平台如何7天完成集团级部署?
  • 代谢流量组学质量键合体与分段仿射近似算法应用【附算法】
  • 【ChatGPT企业版深度实战指南】:20年IT架构师亲授5大核心功能落地路径,规避92%选型踩坑风险
  • LLM 只是开始,Agentic Workflow 才是生产力的真正解锁方式
  • ETCD部署
  • DeepSeek模型量化部署翻车现场复盘:INT4精度崩塌、KV Cache错位、Tokenizer解码乱码——火山引擎专家团48小时根因分析报告
  • Unity Android读取图片路径的三大可靠方案
  • 实木地板选择之重蚁木
  • 如何解决多语言语音识别乱码问题:Vosk API的字符编码终极指南
  • 2026年上海局部改造市场洞察:精改赛道8强品牌全维度解析 - 优家闲谈
  • 5分钟掌握Mermaid在线编辑器:零代码创建专业图表的终极指南
  • 深度学习环境搭建这个老问题,怎么2026年了还在坑人?
  • 在团队开发中利用 Taotoken CLI 统一配置各成员的大模型接入环境
  • 智能体系统设计简明教程
  • 3分钟为Blender相机添加真实抖动:Camera Shakify新手完全指南
  • 上下文是新的算力吗?
  • 第一次听说冷积温慢生耳?这篇文章讲清楚它的来源 - 凇麓|冷积温慢生耳
  • DV-LAE:基于差异向量的机器学习势函数高效数据筛选方法
  • 机器学习在考古学中的应用:从数据准备到模型选择的完整工作流指南
  • 床通道轨到轨CMOS运放:LMC6482AIM
  • 表贴薄膜电容
  • 3分钟学会:用novel-downloader轻松保存网络小说的终极指南
  • 高性能Python多智能体建模框架:Mesa 3.0架构解析与工程实践指南
  • 连续处理效应下的双重差分模型:从核平滑到去偏机器学习的因果推断实践