/*
0表示海洋
1~9都表示陆地
startx,starty为着陆地点
算出降落小岛的面积
*/#include<iostream>
using namespace std;
struct node
{int x;int y;
};
int main()
{int a[50][50];node que[2051];int n,m;int startx,starty;int tx,ty;int i,j;int k;int head,tail;int book[50][50]={0};int next[4][2]={{0,1},{1,0},{0,-1},{-1,0}};int sum;cin>>n>>m>>startx>>starty;for(i=1;i<=n;i++){for(j=1;j<=m;j++){cin>>a[i][j];}}head=1;tail=1;que[tail].x=startx;que[tail].y=starty;book[startx][starty]=1;tail++;sum=1;while(head<tail){for(k=0;k<4;k++){tx=que[head].x+next[k][0];ty=que[head].y+next[k][1];if(tx<1||tx>n||ty<1||ty>m){continue;}if(a[tx][ty]>0&&book[tx][ty]==0){sum++;book[tx][ty]=1;que[tail].x=tx;que[tail].y=ty;tail++;}}head++;}cout<<sum<<endl;return 0;
}
//注意图的下表起始位置是0开始还是从1开始
//图的边界最大位置解释n-1,m-1
/*
10 10 6 8
1 2 1 0 0 0 0 0 2 3
3 0 2 0 1 2 1 0 1 2
4 0 1 0 1 2 3 2 0 1
3 2 0 0 0 1 2 4 0 0
0 0 0 0 0 0 1 5 3 0
0 1 2 1 0 1 5 4 3 0
0 1 2 3 1 3 6 2 1 0
0 0 3 4 8 9 7 5 0 0
0 0 0 3 7 8 6 0 1 2
0 0 0 0 0 0 0 0 1 0
*/

宝岛探险1(BFS)相关推荐

  1. 搜索算法(三)--DFS/BFS求解宝岛探险问题(JAVA )

    宝岛探险问题 问题描述:某片海域有诸多岛屿,用0表示海洋,1-9表示陆地,现给定一个岛屿上的坐标点,求解所在岛屿的面积 思路:显然这是一个搜索算法,即只要从当前坐标点开始遍历,每遍历到一个点进行计数即 ...

  2. 宝岛探险(C语言 )(DFS+BFS)

    宝岛探险 某岛是由一个主岛和一些附属岛屿组成,小哼决定去某岛探险.下面这个10*10的二维矩阵就是某岛的航拍地图.图中数字表示海拔,0表示海洋,1~9表示陆地.小哼的飞机将会降落在(6,8)处,现在需 ...

  3. 2018-2-22 《啊哈,算法》再练习广度优先搜索,题:炸怪兽, 2-23改用深度优先搜索。宝岛探险(广度,深度,及地图着色)2-24水管工游戏,2-25测试水管工代码...

    2小时. 先是是纠错,通过对代码运行过程的测试.发现是变量打错.以及录入地图❌. 重构练习题,改使用while..end代替for in. ⚠️ : 在while(k <= n)中如果用到nex ...

  4. 数据结构(c++)--宝岛探险

    yan一个小岛由一个主岛和一些复附属岛屿组成,该岛使用一个二维矩阵表示,其中数字表示海拔,0表示海洋,1~9表示陆地.探险家乘坐飞机降落在(6,8)处,现在需要统计探险家降落的小岛的面积大小,我们将探 ...

  5. 搜索的实例——宝岛探险

    为了让搜索的思路更加清晰,再来尝试另一个例子,先看题. [题目描述] 小哼通过特殊方法得到了一张不完整的钓鱼岛航拍地图.钓鱼岛由一个主岛和一些附属岛屿组成,小哼决定去钓鱼岛探险,用二维矩阵代表钓鱼岛的 ...

  6. 宝岛探险1(DFS)

    #include<iostream> using namespace std; int book[51][51]={0}; int a[51][51]; int sum; int n,m; ...

  7. 宝岛探险(求岛的大小)

    小人掉落到了(5,7)的位置,(从第0行第0列数),其中用0表示河,其他数字均表示为陆地,求小人掉落的岛的大小. /* 1210000023 3020121012 4010123201 3200012 ...

  8. [C] 深度优先搜索解决连通块/染色问题——求岛的个数

    本文介绍用DFS解决连通块个数问题 有关dfs的介绍见另外一篇:不撞南墙不回头--深度优先搜索 例题 宝岛探险 题目描述 一个小岛由一个主岛和一些复附属岛屿组成,该岛使用一个二维矩阵表示,其中数字表示 ...

  9. [C] 层层递进——C语言实现广度优先搜索

    以防万一有人想不开要做染色的题呢?比如我. 广度优先搜索 如何实现一个广度优先搜索 广搜(bfs)是一个层层递进的概念,与深搜的不撞南墙不回头不同,广搜更像一个感染的过程,一个点只能感染到它周边的点. ...

最新文章

  1. kafka集群为什么需要三个节点_每天处理千亿级日志量,Kafka是如何做到的?
  2. 论怎么写好一篇实验报告
  3. 7-20(排序) 奥运排行榜(25 分)
  4. vue init深度定制团队自己的Vue template
  5. Java 8系列之Lambda表达式
  6. math.floor java_Java Math.floor() 方法
  7. idea 解决查看源码没有注释
  8. dbunit测试dao_用于数据库测试的DBUnit,Spring和注释
  9. 终端打开后-bash_如何爵士化Bash终端-带有图片的分步指南
  10. AppDelegate.h
  11. lnmp环境搭建完全手册(四)——lnmp搭建(源码安装)
  12. [Web Chart系列之一(续)]Web端图形绘制SVG,VML, HTML5 Canvas 简单实例
  13. 路人实拍Waymo无人车:行为诡异,谨慎到让人怀疑人生
  14. 解决X5内核版本兼容问题
  15. dm9000a驱动源码分析
  16. QQ游戏可以进房间,但上不了桌,无法入坐的一次解决经历
  17. 嵌入式硬件上电后,程序的运行过程剖析(CPU、FLASH、内存)
  18. 3d渲染性能测试软件,3D渲染性能测试
  19. vmware vmbox 使用虚拟机安装Windows11提示电脑不符合最低系统要求的解决方案
  20. 精简JavaScript

热门文章

  1. 用opencsv文件读写CSV文件
  2. linux C 中的volatile使用【转】
  3. 字符串数组最长公共前缀
  4. IntelliJ IDEA 2017.1 EAP与异步堆栈跟踪调试器扩展
  5. python_code_417
  6. GdiPlus[29]: IGPPen: 虚线样式
  7. 指针函数的一个范例,在单片机上运用它能让您的程序结构更明朗清晰,层次感强...
  8. sprintf 详解
  9. Linux 硬链接与软链接
  10. Java开发桌面程序学习(七)——ImageView设置图片以及jar包读取fxml文件