蓝桥杯考前每日练习1(第三题-灌溉)

(第一次写题解,可能语言表达不是很到位,多谅解)

题解纯个人思路 可供理解

灌溉这一题 用python解法可以直接用二维数组 去解决,先输入n,m(我图中写的n,m)。循环建出一个n行m列的全部数值为0二维数组,然后再 输入t代表水管数量(这个运用于接下来的循环),然后用for循环 键盘输入t次r,c 找到水管的位置,并把二维数组中 对应位置的数值变成1.输入完水管位置后再输入灌溉的时间。

设置两个一样的二维数组 第一个计为出水口,另一个即存放灌溉到的位置。

(如图)

蓝桥杯考前每日练习1(第三题-灌溉)_第1张图片

 

第二部分就是 从你输入的水管位置开始向四周(即上下左右)扩散灌溉,其实很容易理解

就是根据时间t的去循环把水管灌溉的位置变成1(即水管位置上下左右对应的二维数组中的值变成1).

注意:这里有边界 即你设置的n,m ,循环(即灌溉开始)中要注意超过边界的位置,所以要加入条件(小于n,m,即我图中的x,y)

出水口数组中的数据变化同时根据出水口数据的变化将灌溉到的地方位置数值也变为1.

(如图)蓝桥杯考前每日练习1(第三题-灌溉)_第2张图片

 

设一个sum用来计二维数组中数值为1出现的次数(即t分钟后 可以灌溉到区域)

循环二维数组,每遇到一个数值为1,即sum+=1.

最后输出sum 即可。蓝桥杯考前每日练习1(第三题-灌溉)_第3张图片

 

你可能感兴趣的:(蓝桥杯,python)