2021蓝桥杯真题灌溉 C语言/C++
创始人
2024-06-03 10:10:24
0

题目描述
小蓝负责花园的灌溉工作。

花园可以看成一个 n 行 m 列的方格图形。中间有一部分位置上安装有出水管。

小蓝可以控制一个按钮同时打开所有的出水管,打开时,有出水管的位置可以被认为已经灌溉好。

每经过一分钟,水就会向四面扩展一个方格,被扩展到的方格可以被认为已经灌溉好。即如果前一分钟某一个方格被灌溉好,则下一分钟它上下左右的四个方格也被灌溉好。

给定花园水管的位置,请问 k 分钟后,有多少个方格被灌溉好?

输入描述
输入的第一行包含两个整数 n,m。

第二行包含一个整数 t,表示出水管的数量。

接下来 tt 行描述出水管的位置,其中第 i 行包含两个数 r,c 表示第 r 行第 c 列有一个排水管。

接下来一行包含一个整数 k。

其中,1≤n,m≤100,1≤t≤10,1≤k≤100。

输出描述
输出一个整数,表示答案。

输入输出样例
示例 1
输入

3 6
2
2 2
3 4
1
输出

9
运行限制
最大运行时间:1s
最大运行内存: 128M

所需变量

int a[10005];//用来存储哪个点被灌溉

int b[10005];//跟a数组一样

int n;//用于代表这个农田的行数

int m;//用于代表这个农田的列

int sum;//用于统计最后有多少个点被灌溉

int t;//代表有多少个水龙头

int r;//用于接收这个数的行

int c;//用于接收这个水龙头所在的列

int k;//代表多少分钟

int i,j;//循环变量

int control = 0;//0代表以a为基准,往b数组扩散,1代表相反

int s;//s代表循环变量,控制具体到了多少分钟

思路:我们首先将所有数都从二位转到一维数组,即对于一个r行c列的数我们转换到一维数组是(r-1)*m + c - 1 然后将每次被灌溉或者是有水龙头的我都赋值为1,不断遍历下去就能得到最终答案!
首先我们需要输入进来,然后将其转化为一维数组:

 cin>>n>>m;cin>>t;for(i = 0;icin>>r>>c;a[(r-1)*m + c - 1] = 1;}

然后判断这个现在是a数组转到b数组还是b数组转到a数组,然后不断地向周围扩散,将周围都赋值为1;

 cin>>k;for(s = 1;s<=k;s++){for(i = 0;ifor(j = 0;jif(control == 0){if(a[i*m +j] == 1){b[(i-1)*m+j] = 1;b[i*m +j-1] = 1;b[i*m + j] = 1;b[i*m +j + 1] = 1;b[(i+1)*m + j] = 1;}}else{if(b[i*m +j] == 1){a[(i-1)*m+j] = 1;a[i*m +j-1] = 1;a[i*m + j] = 1;a[i*m +j + 1] = 1;a[(i+1)*m + j] = 1;}}}}control = (control+1)%2;}

最终将得到的结果循环遍历,每次只要该位为1,那么我们就sum++,最后将sum的结果打印出来
代码如下(编译器是dev,语言是C语言):

#include 
using namespace std;
int main()
{int a[10005] = {0},b[10005] = {0},n,m,sum = 0,t,r,c,k;int i,j,control = 0,s;//0代表用b,1代表用acin>>n>>m;cin>>t;for(i = 0;icin>>r>>c;a[(r-1)*m + c - 1] = 1;}cin>>k;for(s = 1;s<=k;s++){for(i = 0;ifor(j = 0;jif(control == 0){if(a[i*m +j] == 1){b[(i-1)*m+j] = 1;b[i*m +j-1] = 1;b[i*m + j] = 1;b[i*m +j + 1] = 1;b[(i+1)*m + j] = 1;}}else{if(b[i*m +j] == 1){a[(i-1)*m+j] = 1;a[i*m +j-1] = 1;a[i*m + j] = 1;a[i*m +j + 1] = 1;a[(i+1)*m + j] = 1;}}}}control = (control+1)%2;}for(i = 0;iif(a[i] == 1||b[i] == 1){sum++;}}cout<

在这里插入图片描述

相关内容

热门资讯

光荣退休领导致辞 光荣退休领导致辞范文(通用5篇)  在学习、工作或生活中,要用到致辞的情况还是蛮多的,致辞是指在仪式...
大学迎新晚会主持词 大学迎新晚会主持词  迎新,全称迎接新春,又叫迎接新年。迎新是中国的传统节日形式。或者欢迎、迎接新来...
教师节校长简短致辞 教师节校长简短致辞(通用10篇)  在日常学习、工作抑或是生活中,大家或多或少都用到过致辞吧,在各种...
张国荣经典台词 关于张国荣经典台词  1、哭,我为了感动谁,笑,又为了碰着谁。  ——《路过蜻蜓》  2、虽然我很喜...
新郎婚礼简短致辞 新郎婚礼简短致辞(精选10篇)  在平平淡淡的学习、工作、生活中,大家都经常接触到致辞吧,致辞是指在...
美剧经典台词截图 美剧经典台词截图  在社会发展不断提速的今天,用到台词的地方越来越多,台词是一种特殊的文学语言,必须...
女朋友撒娇的经典台词 女朋友撒娇的经典台词  1、这种被朋友的情况让我很失落,因为我喜欢他。  2、“她就是躲着我我该怎么...
会主持词开场白 会主持词开场白  篇一  尊敬的各位领导、各位来宾  各位公司同仁:  大家下午好!  非常高兴和大...
中国人寿保险公司晨会主持词 中国人寿保险公司晨会主持词  主持词由主持人于节目进行过程中串联节目的串联词。以下是小编整理的中国人...
公司中秋晚会主持词 关于公司中秋晚会主持词  主持词分为会议主持词、晚会主持词、活动主持词、婚庆主持词等。在当今不断发展...
小学生职位竞选词 小学生职位竞选词  个人觉得竞选中队长,你已经很清楚中队长需要做的事情了,那么就从每一个任务来发展一...
在结婚典礼上的精彩幽默主持词 在结婚典礼上的精彩幽默主持词各位来宾:大家好!奉新郎新娘之命,我来主持今天的婚礼。为什么新郎新娘一定...
婚礼主持人搞笑台词 婚礼主持人搞笑台词  各位来宾:  大家好!奉新郎新娘之命,我来主持今天的婚礼,婚礼主持人搞笑台词。...
幼儿园运动会主持稿 幼儿园运动会主持稿  篇一:幼儿园运动会主持词  踏着春天的脚步,踩着春风的节拍,春天已经来到我们中...
小学庆元旦活动主持词 小学庆元旦活动主持词  利用在中国拥有几千年文化的诗词能够有效提高主持词的感染力。在当今社会生活中,...
爵士舞蹈串词主持词   爵士舞即美国现代舞,是一种急促又富动感的节奏型舞蹈,是属于一种外放性的舞蹈,不像古典芭蕾舞或现代...
幼儿园元旦节目主持词   齐x:亲爱的爸爸妈妈  周x:亲爱的爷爷奶奶  王x:亲爱的老师  李x:亲爱的小朋友们  合:...
运动会运动员赞美词 运动会运动员赞美词1.赞运动员是我们的目标,是我们的信念,在清凉的初秋,在喧嚣的田径场上,。你们点燃...
黄梅戏晚会的主持词 黄梅戏晚会的主持词  戏迷欢庆四一八 黄梅又添新奇葩  ——喜迎418暨欢庆黄梅戏艺术团成立的晚会台...