蓝桥杯寒假集训第三天《灌溉》
2023-02-19 12:19:53 时间
没有白走的路,每一步都算数???
题目描述:
一个长方形块,在方形块的中间位置有给定的水管,这些水管在单位时间会往上下左右四个方向进行灌溉。问在给定的方块中,一定时间后,给定的方块中的水管会灌溉多少块小正方形。其中原本放有水管的位置就已经被灌溉。
输入描述:
第一行:
输入长方形的长度和宽度n,m
第二行:
输入方形区域内中水管的个数k
接下来k行:
输入每个水管在方形区域内的位置x,y
最后一行:
输入进行灌溉的时间t
输出描述:
输出最后被灌溉的正方形的个数
样例输入输出:
样例输入:
3 6
2
2 2
3 4
1
样例输出:
9
第一次:
第一次尝试,出现错误。没能考虑两个点是一起扩散的,单独的for循环不能满足条件。只能考虑到一种条件,遂改变想法
第二次:
考虑到这个可以使用暴力法来解,于是这里还没考虑到空间的原因,于是,采用扩大两倍循环,设置两个维数一样的二维数组。
设计思路:
那么我们for循环两次,第一次把一个数组的灌溉的位置抽象成数字1,第二次再把改变的数组全部赋给原来的数组,这样就能达到预期结果
AC代码:
#灌溉
n,m = map(int,input().split())
L = [[0 for j in range(m)]for i in range(n)]
A = [[0 for j in range(m)]for i in range(n)]
k = int(input())
##print(A)
for i in range(k):
a,b = map(int,input().split())
L[a-1][b-1] = 1
A[a-1][b-1] = 1
##print(A)
##def fun(L):
## l = [[0 for j in range(len(L[0]))]for i in range(len(L))]
## return l
t = int(input())
for x in range(2*t):
if x%2==0:
for i in range(n):
for j in range(m):
if L[i][j]==1:
if j+1<m:
A[i][j+1] = 1
if j-1>=0:
A[i][j-1] = 1
if i-1>=0:
A[i-1][j] = 1
if i+1<n:
A[i+1][j] = 1
break
else:
for i in range(n):
for j in range(m):
L[i][j]=A[i][j]
##A = fun(L)
##print(A)
count = 0
##print(L)
##print(A)
for i in range(n):
for j in range(m):
if L[i][j]==1:
count+=1
print(count)
小彩蛋:
如果你想确保两个数组只是开始的那一刻赋值相同,当其中一个变化,另外一个不受影响的两个数组,就切记不要采用下述的代码
计算出来,在后面对A数组的值进行变更的时候,L数组的值也会变更。
如下所示:(错误示范❌)
正确示范:
代码:
结果:
每日一句
摘自《《晚熟的人》》:
假如你不努力,一年后你还是原来的你,只是一岁。
相关文章
- 全志Tina Linux MPP (多媒体框架)开发指南支持百问网T113 D1-H哪吒DongshanPI-D1s V853-Pro等开发板
- 全志Tina Linux Camera 摄像头模块开发指南 全网最详细版本支持百问网T113-Pro DongshanPI-NezhaD1-H DongshanPI-D1s V853-Pro等开发板
- 全志 Tina Linux LCD显示屏调试指南 支持MIPI DSI RGB LVDS I8080 SPI等接口,开发板支持百问网T113 D1-H哪吒 DongshanPI-D1s V853
- 全志 Tina Linux 系统软件 开发指南 sdk源码编译操作 深入理解Tina-sdk编译框架 支持百问网T113 D1-H哪吒 DongshanPI-D1s V853-Pro等开发板
- C/C++ 内存读写Lib库简单封装
- 全志 Tina Linux 系统资源配置 开发指南 支持百问网T113 D1-H哪吒 DongshanPI-D1s V853-Pro等开发板
- 全志 Tina Linux 图形系统 框架介绍 最全介绍 MiniGUI、QT5、EFL、GTK+(WebkitGtk、Midori)、DirectFB、Wayland
- 全志 Tina Linux 系统调试 使用指南 GDB gdbserver coredump perf strace valgind
- 全志Tina Linux 系统裁剪 boot0裁剪 uboot裁剪 内核裁剪 文件系统裁剪 C库裁剪 文件系统压缩
- 全志 Linux 系统启动优化 启动优化速度方式 优化启动流程 优化uboot 优化kernel等
- 全志Tina Linux SPINAND UBI 离线烧录 开发指南 支持百问网T113 D1-H哪吒 DongshanPI-D1s V853-Pro等开发板
- 全志 芯片 Linux MIPI CSI摄像头接口开发指南 VIN DVP CSI MIPI V4l2
- 如何学习嵌入式Linux_韦东山
- Windows 11 内核新调试器「GitHub 热点速览 v.23.01」
- HelloGitHub 最受欢迎的开源项目 Top10(2022年)
- 你的 GitHub 年度报告「GitHub 热点速览 v.22.52」
- 《HelloGitHub》第 81 期
- 学 Rust 要几天?「GitHub 热点速览 v.22.51」
- 史上最小 x86 Linux 模拟器「GitHub 热点速览 v.22.50」
- 玩 ChatGPT 的正确姿势「GitHub 热点速览 v.22.49」