扩散(蓝桥杯真题)——python解答
题目如下:
小蓝在一张 无限大 的特殊画布上作画。
这张画布可以看成一个方格图,每个格子可以用一个二维的整数坐标表示。
小蓝在画布上首先点了一下几个点:
(0, 0)
(2020, 11)
(11, 14)
(2000, 2000)
只有这几个格子上有黑色,其它位置都是白色的,每过一分钟,黑色就会扩散一点。
具体的,如果一个格子里面是黑色,它就会扩散到上、下、左、右四个相邻的格子中,使得这四个格子也变成黑色
(如果原来就是黑色,则还是黑色)。
请问,经过 2020 分钟后,画布上有多少个格子是黑色的。
答案提交
这是一道结果填空的题,你只需要算出结果后提交即可。
本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。
解答
我们需要利用bfs进行求解,首先我们需要不断地从列表中加入和删去元素,而队列是一个很好的选择python队列讲解,因为队列的移除操作复杂度仅仅只有O(1),添加操作和列表一样。之后是我们该怎样去解决问题。我们可以用数据库进行解决总和问题,我们创建一个(10000, 10000)的矩阵,同时给我们的四个初始坐标加上2100(防止我们后面出现了负数,找不到位置),之后我们就可以肆无忌惮的扩散了,我们创建一个初始时所有值为0的矩阵,初始坐标为1,扩散到0的地方我们变成1,并且加上坐标,否则不需要进行改变。
代码如下
import numpy as np
from queue import Queue
x = Queue()
#我们用第三个数作为时间标注
x.put((2100, 2100, 0))
x.put((2100+2020, 11+2100, 0))
x.put((2100+11, 2100+14, 0))
x.put((2000+2100, 2000+2100, 0))
m = [(2100, 2100),(2100+2020, 11+2100),(2100+11, 2100+14),(2000+2100, 2000+2100)]
moves = [(-1, 0), (0, -1), (1, 0), (0, 1)]
result = np.zeros((10000, 10000))
for i in m:result[i[0]][i[1]] = 1
ans = 4
while not x.empty():a = x.get()for move in moves:newX = a[0] + move[0]newY = a[1] + move[1]if result[newX][newY] == 0 and a[2]+1 <= 2020:result[newX][newY] = 1x.put((newX, newY, a[2]+1))
print(result.sum())
答案:20312088.0
扩散(蓝桥杯真题)——python解答相关推荐
- 2019年第十届蓝桥杯真题python解答(更新中)
1. 后缀表达式 首先要了解什么是后缀表达式: 后缀表达式,指的是不包含括号,运算符放在两个运算对象的后面,所有的计算按运算符出现的顺序,严格从左向右进行(不再考虑运算符的优先规则). 由于后缀表达式 ...
- 李白打酒(蓝桥杯真题)——python讲解
题目如下: 话说大诗人李白,一生好饮.幸好他从不开车. 一天,他提着酒壶,从家里出来,酒壶中有酒2斗.他边走边唱:无事街上走,提壶去打酒. 逢店加一倍,遇花喝一斗.这一路上,他一共遇到店5次,遇到花1 ...
- 蓝桥杯真题python B试题 C: 纸张尺寸
[问题描述] 在 ISO 国际标准中定义了 A0 纸张的大小为 1189mm × 841mm,将 A0 纸 沿长边对折后为 A1 纸,大小为 841mm × 594mm,在对折的过程中长度直接取 下整 ...
- 第十二届蓝桥杯D题python解答
由于要求解的是最短路径,所以我们采用迪杰斯特拉算法,按照改模板去套代码,首先初始化数据,最小公倍数利用乘积除以最大公因数计算求得 import math g=[[float('inf')]*2021 ...
- 鲁卡斯队列蓝桥杯真题python解法
题目描述 解题思路 本题直接暴力,先构造1 3 4 7这种列表.然后用format 判断保留6位小数后谁先满足精度相等 代码 a=[1,3]index=2while index<300:a.ap ...
- 时间显示-蓝桥杯真题-python解法
题目描述 解题思路 题目只求当天的那么就要把多余的天除去,然后再把剩下的转换为时分秒,主要是格式问题 代码 n=int(input())n=n%(1000*24*60*60)#去掉天n=n-n%100 ...
- python解答蓝桥杯真题2 猜年龄 美国数学家维纳(N.Wiener)智力早熟,11岁就上了大学。他曾在19351936年应邀来中国清华大学讲学。。。
python解答蓝桥杯真题2 猜年龄 美国数学家维纳(N.Wiener)智力早熟,11岁就上了大学.他曾在1935~1936年应邀来中国清华大学讲学... 问题描述 全排列模板: 美国数学家维纳(N. ...
- python解答蓝桥杯真题3 省模拟赛 计算机存储中有多少字节
python解答蓝桥杯真题3 省模拟赛 计算机存储中有多少字节 题目 问题描述 在计算机存储中,12.5MB是多少字节? 答案提交 这是一道结果填空的题,你只需要算出结果后提交即可.本题的结果为一个整 ...
- python解答蓝桥杯真题1 高斯日记 大数学家高斯有个好习惯:无论如何都要记日记。。。
python解答蓝桥杯真题1 高斯日记 大数学家高斯有个好习惯:无论如何都要记日记... 题目标题: 高斯日记 大数学家高斯有个好习惯:无论如何都要记日记. 他的日记有个与众不同的地方,他从不注明年月 ...
- 【蓝桥杯真题】16天冲刺 Python
距离比赛很快了,希望和我一起准备的PY党能更加熟练的掌握Python! 1.距离和(模拟赛填空题) 问题描述: 两个字母之间的距离定义为它们在字母表中位置的距离.例如 A和 C 的距离为 2,L 和 ...
最新文章
- 跟我学雨林木风系统制作——2.涉及的技术及用到的工具介绍
- android nuwa2,android热更新
- Unity 开发和配置
- linux安装nagios客户端
- 微软CEO纳德拉恢弘计划:让开发者始终忘不了微软
- Mysql的MVCC是什么
- STM32之RTT调试
- 苏宁易购:2021年度预计商品采购总金额增至不超120亿元
- 马斯克再带货狗狗币:超7成网友票选狗狗币为未来货币
- mysql效率索引_mysql下普通索引和唯一索引的效率对比
- c# getresponsestream返回byte[]_C#通过SharpZipLib库创建压缩文件
- CentOS上使用sysstat做系统监控测试
- 10.22 Ext JS 快速开发工具
- AI 口罩督查官诞生,识别率高达 85%!
- 【个人笔记】OpenCV4 C++ 图像处理与视频分析 08课
- 大量HW红队+蓝队文档下载-定期更新
- ISO14001是什么管理体系
- 使用java生成折线图_Java折线图简单绘制
- Android识别字符串中的简体和繁体字
- python中re.sub函数
热门文章
- Java社会实践报告范文精选5篇
- 视频教程-微信生活缴费商业项目标准版-Java
- matlabR2019b怎么调整字体大小
- java 父类访问子类_java中父类访问子类变量
- 北京化工大学 2022-2023-1 ACM集训队每周程序设计竞赛(7)题解
- Springboot毕设项目浪漫屋婚纱影楼管理系统d96rq(java+VUE+Mybatis+Maven+Mysql)
- MAVEN 淘宝中央仓库
- FOB,CIF,CFR的区别是什么?
- 现代计算机图形学入门ppt,计算机图形学完整课件.ppt
- BigDecimal 金额转换成万和亿,并且去掉小数点后面的0