B.最大岛屿

Time Limit: 1 Sec  Memory Limit: 128 MB Submit: 30  Solved: 18 [Submit][Status][Web Board]

Description

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

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

Input

第1行:     M  N  T      表示海域的长,宽及一个单位表示的面积大小

接下来有M行 ,每行有N个01组成的序列以及其中穿插一些空格。0表示海水,1表示陆地,其中的空格没用,可以忽略掉。

①若一个陆地八个方向之一(上、下、左、右、左上、右上、左下、右下)的位置也是陆地,则视为同一个岛屿。

② 假设第一行,最后一行,第一列,最后一列全为0.

③ 1<M, N≤500   1<T≤100000

Output

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

Sample Input

  1. 8 16 99
  2. 00000000 00000000
  3. 0000110011000000
  4. 0001111000111000
  5. 0000000 00 0000000
  6. 00111 111000001 10
  7. 001110000 0000000
  8. 0100001111 111100
  9. 0000000000000000

Sample Output

  1. 5 990

HINT

 

Source

第八届河南省赛

题解:dfs水题,让求岛屿数目,以及最大长度;

代码:

  1. #include<iostream>
  2. #include<cstring>
  3. #include<cstdio>
  4. #include<cmath>
  5. #include<algorithm>
  6. using namespace std;
  7. #define mem(x,y) memset(x,y,sizeof(x))
  8. #define SI(x) scanf("%d",&x)
  9. #define SL(x) scanf("%lld",&x)
  10. #define PI(x) printf("%d",x)
  11. #define PL(x) printf("%lld",x)
  12. #define P_ printf(" ")
  13. const int INF=0x3f3f3f3f;
  14. const double PI=acos(-1.0);
  15. int mp[550][550];
  16. char s[10010];
  17. int ans,step;
  18. int disx[8]={0,0,1,-1,1,-1,1,-1};
  19. int disy[8]={1,-1,0,0,1,-1,-1,1};
  20. int M,N;
  21. void dfs(int x,int y){
  22. step++;
  23. ans=max(ans,step);
  24. mp[x][y]=0;
  25. int nx,ny;
  26. for(int i=0;i<8;i++){
  27. nx=x+disx[i];ny=y+disy[i];
  28. if(nx<0||ny<0||nx>=M||ny>=N)continue;
  29. if(mp[nx][ny])dfs(nx,ny);
  30. }
  31. }
  32. int main(){
  33. int T;
  34. while(~scanf("%d%d%d",&M,&N,&T)){
  35. getchar();
  36. for(int i=0;i<M;i++){
  37. gets(s);
  38. int k=0;
  39. for(int j=0;s[j];j++)
  40. if(isdigit(s[j]))mp[i][k++]=s[j]-'0';
  41. }
  42. ans=0;
  43. int cnt=0;
  44. for(int i=0;i<M;i++)
  45. for(int j=0;j<N;j++){
  46. if(mp[i][j]){
  47. cnt++;
  48. step=0;
  49. dfs(i,j);
  50. }
  51. }
  52. printf("%d %d\n",cnt,ans*T);
  53. }
  54. return 0;
  55. }

  

第八届河南省赛B.最大岛屿(dfs)的更多相关文章

  1. 第八届河南省赛F.Distribution(水题)

    10411: F.Distribution Time Limit: 1 Sec  Memory Limit: 128 MB Submit: 11  Solved: 8 [Submit][Status] ...

  2. 第八届河南省赛G.Interference Signal(dp)

    G.Interference Signal Time Limit: 2 Sec  Memory Limit: 128 MB Submit: 35  Solved: 17 [Submit][Status ...

  3. 第八届河南省赛D.引水工程(kruthcra+prime)

    D.引水工程 Time Limit: 2 Sec  Memory Limit: 128 MB Submit: 118  Solved: 41 [Submit][Status][Web Board] D ...

  4. 第八届河南省赛C.最少换乘(最短路建图)

    C.最少换乘 Time Limit: 2 Sec  Memory Limit: 128 MB Submit: 94  Solved: 25 [Submit][Status][Web Board] De ...

  5. POJ-2421Constructing Roads,又是最小生成树,和第八届河南省赛的引水工程惊人的相似,并查集与最小生成树的灵活与能用,水过~~~

    Constructing Roads Time Limit: 2000MS   Memory Limit: 65536K               Description There are N v ...

  6. 第八届河南省程序设计大赛-B.最大岛屿0000110011000000

    最大岛屿                                                                                           时间限制: ...

  7. 第七届河南省赛A.物资调度(dfs)

    10401: A.物资调度 Time Limit: 2 Sec  Memory Limit: 128 MB Submit: 95  Solved: 54 [Submit][Status][Web Bo ...

  8. 第八届河南省省赛 A.挑战密室

    挑战密室 时间限制: ms | 内存限制: KB 难度: 描述 R组织的特工Dr. Kong 为了寻找丢失的超体元素,不幸陷入WTO密室.Dr. Kong必须尽快找到解锁密码逃离,否则几分钟之后,WT ...

  9. 第七届河南省赛B.海岛争霸(并差集)

    B.海岛争霸 Time Limit: 2 Sec  Memory Limit: 128 MB Submit: 130  Solved: 48 [Submit][Status][Web Board] D ...

随机推荐

  1. Android SQLite系列

    转:http://blog.csdn.net/liuhe688/article/details/6715983 Android中如何使用SQLite. 现在的主流移动设备像Android.iPhone ...

  2. ■[iOS] Interface type cannot be statically allocated の原因と対応

    iOSでの開発をしていると.表題のエラーが起こる場合があります. 原因 変数の型が静的割り当てになっていることが原因. 対応 変数の型をポインタ型にすると.エラーがなくなります.(変数の前に*をつける ...

  3. echarts实现上海地域PM值(map、timeline)

    <!doctype html> <html> <head> <meta charset="utf-8"> <title> ...

  4. vb 添加状态栏

    1.新建一工程2.添加"部件" ms windows common controls 6.03.将StatusBar控件加至窗体中4.右键点击该控件,选"属性" ...

  5. [原创]浅谈如何使用gcc开发NT核心驱动程序

    原文链接:[原创]浅谈如何使用gcc开发NT核心驱动程序 一谈到在 Win NT 下开发核心驱动程序,可能不少人首先都会想到微软“正统”的VC来.诚然,用VC 配合 WINDDK 的确工作的不错,但或 ...

  6. MFC CArchive实现保存到二进制文件

    先看一下效果图 BOOL Save2File() { BOOL bOpenFileDialog = FALSE; ---------------------------------- ① BOOL b ...

  7. GitHub 菜鸟使用

    之前有用过一次,但是一直弄不明白怎么用,今天我又试了一下,成功了,现在我就记录下来,为了以后的使用以及帮助那些跟我原先一样不会用的同学 进入正题: Step 1: 注册GitHub账号 https:/ ...

  8. CF卡是什么

    CF卡(Compact Flash)最初是一种用于便携式电子设备的数据存储设备.作为一种存储设备,它革命性的使用了闪存,于1994年首次由SanDisk公司生产并制定了相关规范.当前,它的物理格式已经 ...

  9. Windows Azure Marketplace 为新增的 50 个国家/地区提供,并推出了令人振奋的新增内容,包括我们自己的 Bing 光学字符识别服务

    尊敬的 Windows Azure Marketplace 用户: 我们有一些让人激动的新闻与您分享:我们现在为新增的 50 个国家/地区提供 Marketplace.自此,我们提供支持的国家/地区总 ...

  10. ebs清除并法管理器所清除的表

    In this Document   Goal   Solution   References Applies to: Oracle Concurrent Processing - Version 1 ...