岛屿周长
来源:互联网 发布:java服务器开发与c 编辑:程序博客网 时间:2024/05/16 23:38
描述
用一个n*m的二维数组表示地图,1表示陆地,0代表海水,每一格都表示一个1*1的区域。地图中的格子只能横向或者纵向连接(不能对角连接),连接在一起的陆地称作岛屿,同时整个地图都被海水围绕。假设给出的地图中只会有一个岛屿,并且岛屿中不会有湖(即不会有水被陆地包围的情况出现)。请判断所给定的二维地图中岛屿的周长。
输入
第一行为n和m,表示地图的大小(1<=n<=100, 1<=m<=100)。接下来n行,每行有m个数,分别描述每一格的数值。数值之间均用空格隔开。
输出
只有一行,即岛屿的周长(正整数)。
样例输入
3 41 1 1 00 1 0 01 1 0 0
样例输出
14
这道题有两种思路,第一是从水入手计算与水相邻的岛屿个数,如果是0则不计入;第二从每块岛屿入手,计算每块岛屿与水的相邻边数在求和
#include <iostream> #include<cstdio> #include<cstring> using namespace std; int a[102][102],m,n; int go[][2]={1,0,-1,0,0,1,0,-1}; int main() { int ans=0; scanf("%d%d",&n,&m); for(int i=1;i<=n;i++) for(int j=1;j<=m;j++){ scanf("%d",&a[i][j]); } for(int i=1;i<=n;i++){ for(int j=1;j<=m;j++){ if(a[i][j]==1) for(int k=0;k<4;k++){ int nx=i+go[k][0]; int ny=j+go[k][1]; if(a[nx][ny]==0) ans++; } } } printf("%d\n",ans); return 0; }
阅读全文
0 0
- 岛屿周长
- hihoCoder1319 岛屿周长 (bfs)
- [LeetCode] Island Perimeter 岛屿周长
- 463. Island Perimeter 岛屿周长
- 463. Island Perimeter | 岛屿的周长
- LeetCode 463: Island Perimeter(岛屿周长)
- [LeetCode463]Island Perimeter岛屿周长问题
- 岛屿周长问题(python3实现)
- 岛屿个数
- 最大岛屿
- 岛屿问题
- 最大岛屿
- 岛屿问题
- 岛屿Islands
- 最大岛屿
- 最大岛屿
- 最大岛屿
- 1276 岛屿的数量
- [LeetCode] 4. Median of Two Sorted Arrays
- 写给人类的机器学习 一、为什么机器学习重要
- graph
- SpringBoot29-springboot企业级开发-批处理Spring Batch
- fork函数
- 岛屿周长
- openoffice使用总结001---版本匹配问题unknown document format for file: E:\apache-tomcat-8.5.23\webapps\ZcnsDms\
- 整数反转
- 动态导入资源
- WPS Excel表格怎么启用宏功能?
- 34. Search for a Range
- 第0届浙江工业校赛
- linux上weblogic新建domain
- java练习2-1