最大岛屿

题目描述

神秘的海洋,惊险的探险之路,打捞海底宝藏,激烈的海战,海盗劫富等等。加勒比海盗,你知道吧?杰克船长驾驶着自己的的战船黑珍珠1号要征服各个海岛的海盜,最后成为海盗王。  这是一个由海洋、岛屿和海盗组成的危险世界。面对危险重重的海洋与诡谲的对手,如何凭借智慧与运气,建立起一个强大的海盗帝国。

杰克船长手头有一张整个海域的海图,上面密密麻麻分布着各个海屿的位置及面积。他想尽快知道整个海域共有多少岛屿以及最大岛屿的面积。

输入

第1行:M N T,表示海域的长,宽及一个单位表示的面积大小
接下来有M行 ,每行有N个01组成的序列以及其中穿插一些空格。0表示海水,1表示陆地,其中的空格没用,可以忽略掉。

输出

输出一行,有2个整数,一个空格间隔,表示整个海域的岛屿数,以及最大岛屿的面积

样例输入

8 16 99
00000000 00000000
0000110011000000
0001111000111000
0000000  00 0000000
00111  111000001  10
001110000  0000000
0100001111 111100
0000000000000000
样例输出
5 990

提示

①若一个陆地八个方向之一(上、下、左、右、左上、右上、左下、右下)的位置也是陆地,则视为同一个岛屿。
② 假设第一行,最后一行,第一列,最后一列全为0.
③ 1<M, N≤500 1<T≤100000

该题类似于水池数目

#include<stdio.h>
#include<string.h>
int Map[510][510];
const int c[8][2]={-1,-1,1,-1,1,1,1,0,0,1,-1,0,0,-1,-1,1};
int n,m,k;
int ck,num;
void dfs(int x,int y){int xx,yy;for(int i=0;i<8;i++){xx=x+c[i][0];yy=y+c[i][1];if(Map[xx][yy]==1){Map[xx][yy]=0;ck++;dfs(xx,yy);}}
}
int main()
{int maxn;while(~scanf("%d%d%d",&n,&m,&k)){memset(Map,0,sizeof(Map));char ch;for(int i=0;i<n;i++){for(int j=0;j<m;){scanf("%c",&ch);if(ch=='0' || ch=='1')     Map[i][j++]=ch-'0';}}num=0;      maxn=-1;for(int i=0;i<n;i++){for(int j=0;j<m;j++){if(Map[i][j]==1){ck=0;num++;dfs(i,j);if(ck>maxn) maxn=ck;}}}printf("%d %d\n",num,maxn*k);}return 0;
}

nyoj 最大岛屿相关推荐

  1. nyoj 1237-最大岛屿

    1237-最大岛屿 内存限制:64MB 时间限制:1000ms 特判: No 通过数:70 提交数:124 难度:2 题目描述: 神秘的海洋,惊险的探险之路,打捞海底宝藏,激烈的海战,海盗劫富等等.加 ...

  2. nyoj 1237 最大岛屿(dfs)

    描述 神秘的海洋,惊险的探险之路,打捞海底宝藏,激烈的海战,海盗劫富等等.加勒比海盗,你知道吧?杰克船长驾驶着自己的的战船黑珍珠1号要征服各个海岛的海盜,最后成为海盗王. 这是一个由海洋.岛屿和海盗组 ...

  3. nyoj 1237 最大岛屿【dfs】

    最大岛屿 时间限制: 1000 ms  |  内存限制: 65535 KB 难度: 2 描述 神秘的海洋,惊险的探险之路,打捞海底宝藏,激烈的海战,海盗劫富等等.加勒比海盗,你知道吧?杰克船长驾驶着自 ...

  4. [JS]题解 | #岛屿数量#

    题解 | #岛屿数量# 题目链接 岛屿数量 题目描述 时间限制:1秒 空间限制:256M 描述 给一个01矩阵,1代表是陆地,0代表海洋, 如果两个1相邻,那么这两个1属于同一个岛.我们只考虑上下左右 ...

  5. 695.岛屿的最大面积

    给定一个包含了一些 0 和 1的非空二维数组 grid , 一个 岛屿 是由四个方向 (水平或垂直) 的 1 (代表土地) 构成的组合.你可以假设二维矩阵的四个边缘都被水包围着. 找到给定的二维数组中 ...

  6. Leetcode刷题 463题:岛屿的周长(基于Java语言)

    ** Leetcode刷题 463题:岛屿的周长(基于Java语言) ** 一. 题目描述: 给定一个包含 0 和 1 的二维网格地图,其中 1 表示陆地 0 表示水域. 网格中的格子水平和垂直方向相 ...

  7. [Leetcode] Max Area of Island 最大岛屿面积

    Max Area of Island 最新更新请见:https://yanjia.me/zh/2019/02/... Given a non-empty 2D array grid of 0's an ...

  8. NYOJ 30 Gone Fishing JAVA+解析

    Gone Fishing这道题目运用的多次折合成一次这种思想我首次见,我想的一个思路是,每次算一下鱼量和时间代价比,这个代码我没有敲,下面的代码是一位仁兄敲得,我研读了一下,做了一个注释,应该有利于后 ...

  9. Manacher算法 , 实例 详解 . NYOJ 最长回文

    51 Nod http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1089 Manacher 算法 定义数组 p[i]表示以i为 ...

最新文章

  1. shell中执行脚本并显示到终端和保存到日志文件中
  2. 冒泡排序java代码_看动画学算法之:排序冒泡排序
  3. 软件测试人员需要了解关于自动化的什么(译)
  4. How does framework interpret $expand=Notes
  5. You have new mail in /var/spool/mail/root消除提示的方法
  6. python 下载图片到内存卡_python - 获取图像大小而不将图像加载到内存中
  7. Struts2 Action的访问路径
  8. 我对hibernate的对象的3种状态的理解
  9. 理解Java主函数中的String[] args
  10. mybatis中的三种多表查询的方式详解,业务装配,N+1,多表查询的sql
  11. 高中计算机整人代码完整,整人代码 VBS整人代码大全
  12. AI——六(图层、蒙版)
  13. 解决CesiumForUnreal加入CesiumSunSky并调整设置后场景仍然纯白的问题
  14. 【MySQL】数据库中的三大范式
  15. nand flash基础(一)
  16. 记录python开发第一个app,实现word转html的桌面应用
  17. ext3格式化成ext4
  18. python(64位)安装超详细
  19. github push报错 Support for password authentication was removed on August 13, 2021. Please use a perso
  20. Android反编译工具使用方法

热门文章

  1. ddr 和 selectio ip 为什么能实现高速
  2. C6678 DDR3 PLL
  3. 计算机信函 教案模板,信息技术教案模板
  4. python3.16总结
  5. 【STM32】串口通信基本原理(超基础、详细版)
  6. Nginx网络服务之监控模块
  7. 学习C#数据库的操作——使用AdventureWork微软示例库
  8. xmlspy xsd生成java_如何用xmlspy将xml文档生成xsd文件
  9. Google开源依赖注入框架-Guice指南
  10. 用DQN强化学习算法玩“合成大西瓜”!