7-3 BFS应用 LC的绝地求生 (25 分)

L**C 在他小时候特别迷恋绝地求生,他就幻想着有一天能被扔到一个孤岛,他想算出整个岛屿的面积。

简化题意为一个 nn 的地图,共有 nn 个面积为 1 格子,地图左上角的格子编号为 (1,1) 右下角的格子编号为为 (n,n) 。地图上为每个格子做了标记,若编号为 (x,y) 的格子标记位 0 则代表这个区域是海,否则为陆地。

现在 L**C 空投到 (s**x,sy) 位置,他想知道他所在的岛屿的面积。

注意,可能不止一个岛屿,只用求 L**C 所在的岛屿面积。

输入格式:

第一行给出一个正整数 n(1<=n<=50) 表示地图的大小为 nn

第二行给出两个正整数 s**x,sy 表示 L**C 空投到的位置

之后的 n 行,每行给出 n 个整数。其中的第 i 行第 j 列的整数若为 0 则代表编号 (i,j) 位置是海洋,否则代表陆地。

保证数据一定合法,且 L**C 不会落在海里。

输出格式:

在一行中输出 L**C 所在岛屿的面积。

输入样例:

6
5 3
0 0 0 1 1 0
1 0 0 1 1 0
0 0 1 0 1 1
1 1 0 1 0 1
0 1 1 1 0 1
1 1 0 1 1 1

输出样例:

19

代码:

#include <iostream>
#include <queue>
using namespace std;struct Node
{          //每个点int x; //行数int y; //列数
};
int a[101][101];
queue<Node> q;
int n, sx, sy;
int ret = 1;void bfs()
{int next[4][2] = {{1, 0}, {-1, 0}, {0, 1}, {0, -1}};q.push(Node{sx - 1, sy - 1});a[sx - 1][sy - 1] = 2;while (q.size() > 0){Node t = q.front();q.pop();for (int i = 0; i < 4; i++){int x = t.x + next[i][0];int y = t.y + next[i][1];if (x < 0 || x > n - 1 || y < 0 || y > n - 1){continue;}else if (a[x][y] == 1){a[x][y] = 2;ret++;q.push({x, y});}}}cout << ret << endl;
}
int main()
{cin >> n >> sx >> sy;for (int i = 0; i < n; i++){for (int j = 0; j < n; j++){cin >> a[i][j];}}bfs();return 0;
}
#include <iostream>
#include <queue>
using namespace std;struct Node
{          //每个点int x; //行数int y; //列数
};
int a[101][101];
int n, sx, sy;
int ret = 1;
void dfs(Node t)
{int next[4][2] = {{1, 0}, {-1, 0}, {0, 1}, {0, -1}};for (int i = 0; i < 4; i++){int x = t.x + next[i][0];int y = t.y + next[i][1];if (x < 0 || x > n - 1 || y < 0 || y > n - 1){continue;}else if (a[x][y] == 1){a[x][y] = 2;ret++;dfs(Node{x, y});}}
}
int main()
{cin >> n >> sx >> sy;for (int i = 0; i < n; i++){for (int j = 0; j < n; j++){cin >> a[i][j];}}a[sx - 1][sy - 1] = 2;dfs(Node{sx - 1, sy - 1});cout << ret << endl;return 0;
}

7-3 BFS应用 LC的绝地求生 (25 分)相关推荐

  1. 7-23 LC的绝地求生分数 25

    LC 在他小时候特别迷恋绝地求生,他就幻想着有一天能被扔到一个孤岛,他想算出整个岛屿的面积. 简化题意为一个 n∗n 的地图,共有 n∗n 个面积为 1 格子,地图左上角的格子编号为 (1,1) 右下 ...

  2. python mro c3_绝地求生辅助_Python的多继续问题-MRO和C3算法

    博弈论--两人取子游戏与威佐夫博弈,隐藏在背后的黄金分割dnf辅助Python 中的方式剖析顺序(Method Resolution Order, MRO)界说了多继续存在时 Python 注释器查找 ...

  3. 吃鸡服务器炸了会显示什么,绝地求生服务器再爆炸,还能不能好好吃鸡了?

    原标题:绝地求生服务器再爆炸,还能不能好好吃鸡了? 觉得小编写的还不错,就点个关注哦! 昨晚(5月4日)绝地求生服务器再次出现爆炸行为,难道是因为最近更新太平凡,改动太大?应该不是这个原因,就以前的状 ...

  4. 绝地求生现在服务器稳定吗,吃鸡服务器不稳定?《绝地求生》国服宣布将首次使用超性能服务器...

    2月26日消息 要说目前最受国内游戏爱好者期待的游戏,相信不少小伙伴都会投火遍全球的<绝地求生>一票!而据最新消息显示,为了给玩家们带来更加优秀的游戏体验,<绝地求生>国服将首 ...

  5. 你需要启用steam社区界面功能以进行购买_绝地求生购买衣服方法

    一.首先,我们需要来到Steam官网,点击右上角进行登录,然后我们输入Steam账号密码登录. 二.之后我们在首页上方找到Steam社区,在Steam社区中找到[市场]一选项.点击进入Steam市场. ...

  6. 绝地服务器维护7月5日,绝地求生7月5日更新到几点 吃鸡更新维护公告

    原标题:绝地求生7月5日更新到几点 吃鸡更新维护公告 绝地求生将会在7月5日的早上10点进行一次新版本的更新,这次没什么重要的更新内容,预计是3个小时,估计会提早,大家可以做好准备,下面就来为大家分享 ...

  7. 传微软有意收购EA公司,连《绝地求生》的蓝洞也想一并收入囊中

    传闻称微软有可能收购艺电,Valve或<绝地求生>开发商PUBG Corp. 近日,据外媒报道,微软正在计划收购EA.更进一步的是,EA不只是微软唯一的目标,PUBG和Valve也在微软的 ...

  8. 吃鸡2019年5月7日服务器维护,绝地求生正式服5月17日停机更新维护多久到几点

    绝地求生的正式服在1月27日周三这天即将开启停机维护,此次的停机维护时间预计是五个小时,维护的内容就是修复一些bug问题,很多玩家还不清楚有什么更新内容,下面就来为大家分享一下绝地求生的更新维护公告. ...

  9. 绝地求生 android版支持蓝牙吗,绝地求生怎么蓝牙耳机设置听脚步 | 手游网游页游攻略大全...

    发布时间:2017-01-03 声音调大之后,枪声.飞机.爆炸与开车声太大非常烦人,且脚步声也不是很清晰,那么究竟如何设置能让大家快速变为听声辩位高手呢?今天小编带来"UID13647447 ...

最新文章

  1. 技术人如何搭建自己的技术博客
  2. 3.如何安装Apache Spark
  3. Anconda安装教程
  4. sharepoint 2010 记录管理 对象模型
  5. PHP中empty,is_null,isset中的异同和功能
  6. vfp报表纸张设置_VFP 9.0中实现多种自定义纸张格式的报表打印
  7. (89)Verilog HDL系统函数和任务:$fwrite
  8. 你们身边成功的生意人有哪些特质
  9. 《软件方法》第8章 分析 之 分析类图——知识篇Part1(20211029更新)
  10. SQL Server数据库被置疑的解决方案
  11. MAC苹果应用软件,财务管理,三D制图,清理神器
  12. 服务器在线测速系统源码
  13. 阅读论文《MOJITALK: Generating Emotional Responses at Scale》——ACL2018
  14. [AGC004E] Salvage Robots (DP)
  15. 三种显色方法ECL、NBT/BCIP和DAB的对比
  16. 中国开发者真实现状:40 岁不做开发,算法工程师最稀缺!
  17. 网页游戏如何发送数据封包的思路和核心代码具体实现
  18. Stduino学习(二十六)水位传感器模块
  19. python正整数平方根_python怎么求一个数的平方根
  20. Error: Running Homebrew as root is extremely dangerous and no longer supported. As Ho【已解决】

热门文章

  1. python如何简便使用cumsum函数完成绘制累计概率分布图(CDF)
  2. 通过准确性、可解释性、校准度和忠实度,对ChatGPT的能力进行全面评估
  3. java中的睡眠操作(sleep)
  4. C# 往string [] arr 数组插入元素
  5. 【小知识】讲一讲软件无线电Software-Defined Radio
  6. 火狐正用心打造平板浏览器
  7. Java多线程实现简单抢红包
  8. linux下socket编程:区分close()与shutdown()
  9. Lombok 之 Data Value
  10. 用python创建一个新文件_Python创建文件和追加文件内容实例