nyoj 最大岛屿
最大岛屿
题目描述
神秘的海洋,惊险的探险之路,打捞海底宝藏,激烈的海战,海盗劫富等等。加勒比海盗,你知道吧?杰克船长驾驶着自己的的战船黑珍珠1号要征服各个海岛的海盜,最后成为海盗王。 这是一个由海洋、岛屿和海盗组成的危险世界。面对危险重重的海洋与诡谲的对手,如何凭借智慧与运气,建立起一个强大的海盗帝国。
杰克船长手头有一张整个海域的海图,上面密密麻麻分布着各个海屿的位置及面积。他想尽快知道整个海域共有多少岛屿以及最大岛屿的面积。
输入
接下来有M行 ,每行有N个01组成的序列以及其中穿插一些空格。0表示海水,1表示陆地,其中的空格没用,可以忽略掉。
输出
样例输入
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 最大岛屿相关推荐
- nyoj 1237-最大岛屿
1237-最大岛屿 内存限制:64MB 时间限制:1000ms 特判: No 通过数:70 提交数:124 难度:2 题目描述: 神秘的海洋,惊险的探险之路,打捞海底宝藏,激烈的海战,海盗劫富等等.加 ...
- nyoj 1237 最大岛屿(dfs)
描述 神秘的海洋,惊险的探险之路,打捞海底宝藏,激烈的海战,海盗劫富等等.加勒比海盗,你知道吧?杰克船长驾驶着自己的的战船黑珍珠1号要征服各个海岛的海盜,最后成为海盗王. 这是一个由海洋.岛屿和海盗组 ...
- nyoj 1237 最大岛屿【dfs】
最大岛屿 时间限制: 1000 ms | 内存限制: 65535 KB 难度: 2 描述 神秘的海洋,惊险的探险之路,打捞海底宝藏,激烈的海战,海盗劫富等等.加勒比海盗,你知道吧?杰克船长驾驶着自 ...
- [JS]题解 | #岛屿数量#
题解 | #岛屿数量# 题目链接 岛屿数量 题目描述 时间限制:1秒 空间限制:256M 描述 给一个01矩阵,1代表是陆地,0代表海洋, 如果两个1相邻,那么这两个1属于同一个岛.我们只考虑上下左右 ...
- 695.岛屿的最大面积
给定一个包含了一些 0 和 1的非空二维数组 grid , 一个 岛屿 是由四个方向 (水平或垂直) 的 1 (代表土地) 构成的组合.你可以假设二维矩阵的四个边缘都被水包围着. 找到给定的二维数组中 ...
- Leetcode刷题 463题:岛屿的周长(基于Java语言)
** Leetcode刷题 463题:岛屿的周长(基于Java语言) ** 一. 题目描述: 给定一个包含 0 和 1 的二维网格地图,其中 1 表示陆地 0 表示水域. 网格中的格子水平和垂直方向相 ...
- [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 ...
- NYOJ 30 Gone Fishing JAVA+解析
Gone Fishing这道题目运用的多次折合成一次这种思想我首次见,我想的一个思路是,每次算一下鱼量和时间代价比,这个代码我没有敲,下面的代码是一位仁兄敲得,我研读了一下,做了一个注释,应该有利于后 ...
- Manacher算法 , 实例 详解 . NYOJ 最长回文
51 Nod http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1089 Manacher 算法 定义数组 p[i]表示以i为 ...
最新文章
- shell中执行脚本并显示到终端和保存到日志文件中
- 冒泡排序java代码_看动画学算法之:排序冒泡排序
- 软件测试人员需要了解关于自动化的什么(译)
- How does framework interpret $expand=Notes
- You have new mail in /var/spool/mail/root消除提示的方法
- python 下载图片到内存卡_python - 获取图像大小而不将图像加载到内存中
- Struts2 Action的访问路径
- 我对hibernate的对象的3种状态的理解
- 理解Java主函数中的String[] args
- mybatis中的三种多表查询的方式详解,业务装配,N+1,多表查询的sql
- 高中计算机整人代码完整,整人代码 VBS整人代码大全
- AI——六(图层、蒙版)
- 解决CesiumForUnreal加入CesiumSunSky并调整设置后场景仍然纯白的问题
- 【MySQL】数据库中的三大范式
- nand flash基础(一)
- 记录python开发第一个app,实现word转html的桌面应用
- ext3格式化成ext4
- python(64位)安装超详细
- github push报错 Support for password authentication was removed on August 13, 2021. Please use a perso
- Android反编译工具使用方法