十一届蓝桥杯国赛 扩散-多源bfs

【问题描述】
小蓝在一张无限大的特殊画布上作画。
这张画布可以看成一个方格图,每个格子可以用一个二维的整数坐标表示。
小蓝在画布上首先点了一下几个点:(0, 0), (2020, 11), (11, 14), (2000, 2000)。
只有这几个格子上有黑色,其它位置都是白色的。
每过一分钟,黑色就会扩散一点。具体的,如果一个格子里面是黑色,它
就会扩散到上、下、左、右四个相邻的格子中,使得这四个格子也变成黑色
(如果原来就是黑色,则还是黑色)。
请问,经过 2020 分钟后,画布上有多少个格子是黑色的。

代码如下:

#include <iostream>
#include <queue>
using namespace std;
const int N = 10010;
bool vis[N][N];
typedef long long LL;
LL ans = 0;int dx[] = {0, 0, 1, -1}, dy[] = {1, -1, 0, 0};struct node {int x;int y;int p;
};void bfs() {queue<node>q;vis[0 + 3000][0 + 3000] = true;//相对位置不变结果不变 ,不加数组会越界 //这里如果不是加3000,是加2000也会越界,//所以我们还是尽量让它移动到比较中间的位置vis[2020 + 3000][11 + 3000] = true;vis[11 + 3000][14 + 3000] =  true;vis[2000 + 3000][2000 + 3000] = true;q.push({0 + 3000, 0 + 3000, 0});q.push({2020 + 3000, 11 + 3000, 0});q.push({11 + 3000, 14 + 3000, 0});q.push({2000 + 3000, 2000 + 3000, 0});ans = 4;//最开始有4个点while (q.size()) {node t = q.front();q.pop();if (t.p == 2020)continue;for (int i = 0; i < 4; i++) {int xx = t.x + dx[i], yy = t.y + dy[i];if (!vis[xx][yy]) {vis[xx][yy] = true;ans++;q.push({xx, yy, t.p + 1});}}}
}int main() {bfs();cout << ans << endl;return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/310835.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux下Qt编写串口调试助手,如何在linux下用QT写一个简单的串口调试助手

如何在linux下用QT写一个简单的串口调试助手QT5串口类在QT5以前&#xff0c;编写串口一般使用的是qextserialport类&#xff0c;但在QT5之后有了QT自带的串口类SerialPort(串口基础类)和SerialPortInfo(串口信息类)使用方法pro中添加QT serialport工程中包含相应的头文件#incl…

当代年轻人到底怎么跨越阶层?

0最近大道理讲的有点多&#xff0c;鸡汤灌多了容易腻味&#xff0c;还容易上火。别说你们烦我&#xff0c;我自己讲的也烦&#xff0c;感觉像一个叨逼叨的老头&#xff0c;天天灌一些被90后、00后唾弃的东西。毕竟天天熬鸡汤不仅累还容易熏晕自己。很多东西吧&#xff0c;的确是…

十一届蓝桥杯国赛 美丽的2-枚举

【问题描述】 小蓝特别喜欢 2&#xff0c;今年是公元 2020 年&#xff0c;他特别高兴。 他很好奇&#xff0c;在公元 1 年到公元 2020 年&#xff08;包含&#xff09;中&#xff0c;有多少个年份的数位中 包含数字 2&#xff1f; 代码如下: #include <iostream> using…

分析linux相关日志文件,Linux日志系统与分析.pdf

Linux日志系统与分析1目录 Linux日志系统简介 Linux日志分析 案例介绍&#xff1a; Linux日志入侵发现Linux日志系统简介 日志的主要用途是系统审计、监测追踪和分析统计。 为了保证 Linux 正常运行、准确定位系统问题&#xff0c;认真检查日志文件是管理员的一项非常…

MySQL对JSON类型UTF-8编码导致中文乱码探讨

继上文发表之后&#xff0c;结合评论意见并亲自验证最终发现是编码的问题&#xff0c;但是对于字符编码还是有点不解&#xff0c;于是乎&#xff0c;有了本文&#xff0c;我们来学习字符编码&#xff0c;在学习的过程中&#xff0c;我发现对于MySQL中JSON类型的编码导致数据中文…

Linux 文本格式显示折线图,linux 折线图

可以这样回答&#xff1a;emmm 怎么说呢。数据库就是用来存储数据的仓库&#xff0c;就像我们生活中存放物品的容器一样&#xff0c;但是容器也有通用和专用之分&#xff0c;比如塑料袋就是通用容器&#xff0c;因为塑料袋可以装各种东西&#xff1a;即可以装糖果&#xff0c;也…

十一届蓝桥杯国赛 本质上升序列-dp

【问题描述】 小蓝特别喜欢单调递增的事物。 在一个字符串中&#xff0c;如果取出若干个字符&#xff0c;将这些字符按照在字符串中的顺 序排列后是单调递增的&#xff0c;则成为这个字符串中的一个单调递增子序列。 例如&#xff0c;在字符串 lanqiao 中&#xff0c;如果取出字…

互联网公司的大龄社畜

作者&#xff1a;邹溪源&#xff0c;长沙资深互联网从业者&#xff0c;架构师社区特邀嘉宾&#xff01;一某年&#xff0c;我有幸加入了一家互联网公司B公司。互联网公司无处不充满了奋斗的精神。以此为背景。二有一天&#xff0c;有同事跟我说&#xff1a;你发现没&#xff0c…

LeetCode 1122 数组的相对排序-简单-unordered_map容器的应用

给你两个数组&#xff0c;arr1 和 arr2&#xff0c; arr2 中的元素各不相同 arr2 中的每个元素都出现在 arr1 中对 arr1 中的元素进行排序&#xff0c;使 arr1 中项的相对顺序和 arr2 中的相对顺序相同。未在 arr2 中出现过的元素需要按照升序放在 arr1 的末尾。 示例&#x…

linux系统shell知识点,linux shell 知识点

1.if语句语法为&#xff1a;if [ 条件表达式 ]; then.....fi条件表达式类型&#xff1a;文件表达式if [ -f file ] 如果文件存在 if [ -d ... ] 如果目录存在 if [ -s file ] 如果文件存在且非空 if [ -r file]如果文件存在且可读 if [ -w file]如果文件存在且可写 if [ -x fil…

.NET Core开发实战(第34课:MediatR:轻松实现命令查询职责分离模式(CQRS))--学习笔记(下)...

34 | MediatR&#xff1a;轻松实现命令查询职责分离模式&#xff08;CQRS&#xff09;实际上我们在定义我的查询的时候&#xff0c;也可以这样定义&#xff0c;例如我们定义一个 MyOrderQuery&#xff0c;把订单的所有名称都输出出去namespace GeekTime.API.Application.Querie…

linux连接http报301解决,https下不加www的301强制跳转

不少浏览器都开始逐渐更新至只支持https的网站&#xff0c;所以很多http网站都需要添加对https的支持&#xff0c;这时就需要涉及到www和不加www的跳转问题&#xff0c;由于www和不加www使用的是不同的证书&#xff0c;所以需要做301跳转处理&#xff0c;方案如下&#xff1a;此…

LeetCode 637 二叉树的层平均值-简单

给定一个非空二叉树, 返回一个由每层节点平均值组成的数组。 示例 1&#xff1a; 输入&#xff1a; 3/ \9 20/ \15 7输出&#xff1a;[3, 14.5, 11] 解释&#xff1a; 第 0 层的平均值是 3 , 第1层是 14.5 , 第2层是 11 。因此返回 [3, 14.5, 11] 。 提示&#xff1a; …

Asp.Net Core 中IdentityServer4 实战之角色授权详解

一、前言前几篇文章分享了IdentityServer4密码模式的基本授权及自定义授权等方式&#xff0c;最近由于改造一个网关服务&#xff0c;也用到了IdentityServer4的授权&#xff0c;改造过程中发现比较适合基于Role角色的授权&#xff0c;通过不同的角色来限制用户访问不同的Api资源…

linux cpu load 值,理解Linux系统中的load average(图文版)转

一、什么是load average&#xff1f;linux系统中的Load对当前CPU工作量的度量 (WikiPedia: the system load is a measure of the amount of work that a computer system is doing)。也有简单的说是进程队列的长度。Load Average 就是一段时间 (1 分钟、5分钟、15分钟) 内平均…

LeetCode 257二叉树的所有路径-简单

给定一个二叉树&#xff0c;返回所有从根节点到叶子节点的路径。 说明: 叶子节点是指没有子节点的节点。 示例: 输入: 1/ \ 2 3\5输出: [“1->2->5”, “1->3”] 解释: 所有根节点到叶子节点的路径为: 1->2->5, 1->3 代码如下: /*** Definition …

[ASP.NET Core 3.1]浏览器嗅探解决部分浏览器丢失Cookie问

今天的干货长驱直入&#xff0c;直奔主题看了前文的同学们应该都知道&#xff0c;搜狗、360等浏览器在单点登录中反复重定向&#xff0c;最终失败报错。原因在于&#xff0c;非Chrome80浏览器不识别Cookie上的SameSitenone属性值,导致认证Cookie在后续请求中被抛弃。截至2020/3…

c语言 最小值算法,C语言实现基于最大堆和最小堆的堆排序算法示例

堆定义堆实际上是一棵完全二叉树&#xff0c;其任何一非叶节点满足性质&#xff1a;Key[i]<key[2i1]&&Key[i]<key[2i2](小顶堆)或者&#xff1a;Key[i]>Key[2i1]&&key>key[2i2](大顶堆)即任何一非叶节点的关键字不大于或者不小于其左右孩子节点的关…

LeetCode100 相同的树-简单

给你两棵二叉树的根节点 p 和 q &#xff0c;编写一个函数来检验这两棵树是否相同。 如果两个树在结构上相同&#xff0c;并且节点具有相同的值&#xff0c;则认为它们是相同的。 示例 1&#xff1a; 输入&#xff1a;p [1,2,3], q [1,2,3] 输出&#xff1a;true 示例 2&a…

Xamarin.Forms读取并展示Android和iOS通讯录 - TerminalMACS客户端

本文同步更新地址&#xff1a;https://dotnet9.com/11520.htmlhttps://terminalmacs.com/861.html阅读导航&#xff1a;一、功能说明二、代码实现三、源码获取四、参考资料五、后面计划一、功能说明完整思维导图&#xff1a;https://github.com/dotnet9/TerminalMACS/blob/mast…