题目链接

最大岛屿
神秘的海洋,惊险的探险之路,打捞海底宝藏,激烈的海战,海盗劫富等等。加勒比海盗,你知道吧?杰克船长驾驶着自己的的战船黑珍珠 111 号要征服各个海岛的海盜,最后成为海盗王。这是一个由海洋、岛屿和海盗组成的危险世界。面对危险重重的海洋与诡谲的对手,如何凭借智慧与运气,建立起一个强大的海盗帝国。杰克船长手头有一张整个海域的海图,上面密密麻麻分布着各个海屿的位置及面积。他想尽快知道整个海域共有多少岛屿以及最大岛屿的面积。输入格式第 1行:M,N,T,表示海域的长,宽及一个单位表示的面积大小接下来有 MMM 行 ,每行有 N 个 01 组成的序列以及其中穿插一些空格。0 表示海水,1 表示陆地,其中的空格没用,可以忽略掉。输出格式输出一行,有 2 个整数,一个空格间隔,表示整个海域的岛屿数,以及最大岛屿的面积。提示1:若一个陆地八个方向之一(上、下、左、右、左上、右上、左下、右下)的位置也是陆地,则视为同一个岛屿。2:假设第一行,最后一行,第一列,最后一列全为 000。
数据范围1≤N,M,T≤500。

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

样例输出
5 990

这个题可以用深搜或者广搜
麻烦一点的就是一开始数据的输入问题,里面包含空格,可以先当作字符输入然后输入之后再进行判断,成功输入一个数字之后再进行j++。这个题也是基础的广搜深搜题。只要把地图染色之后计算面积就可以了。

深搜代码

#include<stdio.h>
#include<bits/stdc++.h>
using namespace std;
int a[500][500];
int n,m,p;
int mymax=0;
int sum;
int go[8][2]={{0,1},{1,0},{-1,0},{0,-1},{1,1},{-1,1},{1,-1},{-1,-1}};
void dfs(int x,int y)
{int i,tx,ty;for(i=0;i<8;i++){tx=x+go[i][0];ty=y+go[i][1];if(tx>=0&&tx<n&&ty>=0&&ty<m){if(a[tx][ty]==1){a[tx][ty]=0;sum++;dfs(tx,ty);} }}
}
int main()
{scanf("%d %d %d",&n,&m,&p);getchar();int i,j;char s;for(i=0;i<n;i++){j=0;for(j=0;j<m;){scanf("%c",&s);if(s!=' '){a[i][j]=s-'0';j++;}}getchar();}int num=0;for(i=0;i<n;i++){for(j=0;j<m;j++){if(a[i][j]==1){num++;a[i][j]=0;sum=1;dfs(i,j);if(sum>mymax)mymax=sum;}}}printf("%d %d\n",num,mymax*p);return 0;
} 

广搜代码

#include<stdio.h>
struct muban
{int x;int y;
}que[250000];//这里数组一定要开的足够大
int a[505][505];
int go[8][2]={{0,1},{1,0},{0,-1},{-1,0},{-1,-1},{-1,1},{1,-1},{1,1}};
int mymax=0;
int sum,head,tail;
int n,m,i,j,p;
void bfs(int x,int y)
{int i,tx,ty;while(head<tail){for(i=0;i<8;i++){tx=que[head].x+go[i][0];ty=que[head].y+go[i][1];if(tx>=0&&tx<n&&ty>=0&&ty<m&&a[tx][ty]==1){a[tx][ty]=0;que[tail].x=tx;que[tail].y=ty;tail++;sum++;}}head++;}
}
int main()
{scanf("%d %d %d",&n,&m,&p);getchar();int s;for(i=0;i<n;i++){j=0;for(j=0;j<m;){scanf("%c",&s);if(s!=' '){a[i][j]=s-'0';j++;}}getchar();}int q=0;for(i=0;i<n;i++){for(j=0;j<m;j++){if(a[i][j]==1){a[i][j]=0;q++;sum=1;head=1;que[head].x=i;que[head].y=j;tail=2;bfs(i,j);if(sum>mymax)mymax=sum;}}}printf("%d %d\n",q,mymax*p);return 0;} 

最大岛屿 计蒜客--T1405相关推荐

  1. 计蒜客题解——T1769:最大岛屿

    题目相关 题目链接 计蒜客,https://nanti.jisuanke.com/t/T1405. 我的OJ,http://47.110.135.197/problem.php?id=5254. 题目 ...

  2. 计蒜客 挑战难题 爬楼梯

    计蒜客 挑战难题 爬楼梯 假设你现在正在爬楼梯,楼梯有n级.每次你只能爬1级或者2级,那么你有多少种方法爬到楼梯的顶部? 格式: 第一行输入一个数n(n<=50),代表楼梯的级数. 接下来一行输 ...

  3. 无脑博士的试管们java_计蒜客 无脑博士和他的试管们

    标签: 无脑博士有三个容量分别是A,B,C升的试管,A,B,C分别是三个从1到20的整数,最初,A和B试管都是空的,而C试管是装满硫酸铜溶液的.有时,无脑博士把硫酸铜溶液从一个试管倒到另一个试管中,直 ...

  4. 最短路(遍历边)计蒜客—DD坐地铁

    题目: C 城有 n 个站点, m 条双向地铁,每条地铁有一个 companyicompany_icompanyi​表示它的公司,如果连续乘坐同一家公司的地铁只要花 1元钱就好.DD现在想出门找萨摩耶 ...

  5. K - Triangle 计蒜客 - 42405

    K - Triangle 计蒜客 - 42405 题意: 给你一个三角形的三点,再给你三角形边上一个点,让你求另一个点(也要在三角形上),使得平分三角形的面积 题解: 计算几何 三角形的三边ab,ac ...

  6. H - Prince and Princess 计蒜客 - 42402

    H - Prince and Princess 计蒜客 - 42402 题意: 你现在要寻找公主,有三种人,第一种是说真话的人(至少为1,因为公主是说真话的人),第二种人是只会说假话的,第三种是胡说八 ...

  7. C - Digital Path 计蒜客 - 42397 05-29

    C - Digital Path 计蒜客 - 42397 题意: 题意就是给出一个n ∗ m的数字矩阵每个矩阵元素之间只能上下左右走,而且下一个位置必须比当前位置的数字大1,入口和出口必须数边缘元素, ...

  8. 计蒜客可以做计算机编程吗,如果你的编程能力不足以支撑你成为工程师的野心,不妨到计蒜客上学学看...

    在人才招聘领域存在这样一个怪圈,高校每年都说是最难就业年.人才过剩,而对于企业HR来说永远都招不到称心如意的人才.这个怪圈在"计蒜客"创始人俞昊然看来,主要是因为当今高校的教学资源 ...

  9. 计蒜客 - T1012 A*B问题

    计蒜客 - T1012 A*B问题 相信你已经学会 A+B 问题了,那么问题又来了- 输入两个正整数 A 和 B ,求 A×B. 输入格式 一行,包含两个正整数 A 和 B,中间用单个空格隔开. 1≤ ...

最新文章

  1. 大数据、智慧城市成生态贵州新名片
  2. android选择下拉框的默认值,如何在Android中将默认值设置为微调器下拉列表?
  3. 【LeetCode 502】IPO
  4. 【Unity与23种设计模式】访问者模式(Visitor)
  5. 高性能网站建设指南——网站优化的14条建议
  6. 【数据科学系统学习】机器学习算法 # 西瓜书学习记录 [9] 决策树
  7. cartographer的一些结果
  8. 【Xamarin挖墙脚系列:mac 终端 常用命令+Mac OS X的快捷键+beamoff 】
  9. WFDB工具箱在Matlab2010b及更高版本上的安装
  10. fds文件的处理方法
  11. 二维数组指针的理解和应用
  12. 10分钟教你用scratch做一款小游戏,玩游戏不如自己做游戏
  13. android 6.0 power按键深度解析
  14. jQuery选择器详细介绍
  15. 【移动架构】Flutter vs React Native:最后一句话。
  16. [OpenHarmony RK3568] (二)基础开发
  17. Ubuntu 设置合上笔记本盖子休眠的方法
  18. vue安装node-sass错误
  19. Android掌上医疗预约挂号系统app
  20. C++——set基本操作总结

热门文章

  1. 大数据之Linux命令
  2. Python Flask Web教程002:Flask 快速上手
  3. IP包流量分析(一)(python+pypcap+dkpt)
  4. 论文笔记Long_Term_Feature_Bank
  5. c语言编程题总结,c语言编程题总结
  6. Object类的常用方法
  7. 微生物组-宏基因组分析(线上/线下同时开课,2021.8)
  8. 一个好用的 JSON 编辑器 JsonEditor V1.03.2
  9. 谷歌海外推广怎么做?
  10. uni-app关于uni.navigateTo的坑以及解决方案