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<

在这里插入图片描述

相关内容

热门资讯

常用商务英语口语   商务英语是以适应职场生活的语言要求为目的,内容涉及到商务活动的方方面面。下面是小编收集的常用商务...
六年级上册英语第一单元练习题   一、根据要求写单词。  1.dry(反义词)__________________  2.writ...
复活节英文怎么说 复活节英文怎么说?复活节的英语翻译是什么?复活节:Easter;"Easter,anniversar...
2008年北京奥运会主题曲 2008年北京奥运会(第29届夏季奥林匹克运动会),2008年8月8日到2008年8月24日在中华人...
英语道歉信 英语道歉信15篇  在日常生活中,道歉信的使用频率越来越高,通过道歉信,我们可以更好地解释事情发生的...
六年级英语专题训练(连词成句... 六年级英语专题训练(连词成句30题)  1. have,playhouse,many,I,toy,i...
上班迟到情况说明英语   每个人都或多或少的迟到过那么几次,因为各种原因,可能生病,可能因为交通堵车,可能是因为天气冷,有...
小学英语教学论文 小学英语教学论文范文  引导语:英语教育一直都是每个家长所器重的,那么有关小学英语教学论文要怎么写呢...
英语口语学习必看的方法技巧 英语口语学习必看的方法技巧如何才能说流利的英语? 说外语时,我们主要应做到四件事:理解、回答、提问、...
四级英语作文选:Birth ... 四级英语作文范文选:Birth controlSince the Chinese Governmen...
金融专业英语面试自我介绍 金融专业英语面试自我介绍3篇  金融专业的学生面试时,面试官要求用英语做自我介绍该怎么说。下面是小编...
我的李老师走了四年级英语日记... 我的李老师走了四年级英语日记带翻译  我上了五个学期的小学却换了六任老师,李老师是带我们班最长的语文...
小学三年级英语日记带翻译捡玉... 小学三年级英语日记带翻译捡玉米  今天,我和妈妈去外婆家,外婆家有刚剥的`玉米棒上带有玉米籽,好大的...
七年级英语优秀教学设计 七年级英语优秀教学设计  作为一位兢兢业业的人民教师,常常要写一份优秀的教学设计,教学设计是把教学原...
我的英语老师作文 我的英语老师作文(通用21篇)  在日常生活或是工作学习中,大家都有写作文的经历,对作文很是熟悉吧,...
英语老师教学经验总结 英语老师教学经验总结(通用19篇)  总结是指社会团体、企业单位和个人对某一阶段的学习、工作或其完成...
初一英语暑假作业答案 初一英语暑假作业答案  英语练习一(基础训练)第一题1.D2.H3.E4.F5.I6.A7.J8.C...
大学生的英语演讲稿 大学生的英语演讲稿范文(精选10篇)  使用正确的写作思路书写演讲稿会更加事半功倍。在现实社会中,越...
VOA美国之音英语学习网址 VOA美国之音英语学习推荐网址 美国之音网站已经成为语言学习最重要的资源站点,在互联网上还有若干网站...
商务英语期末试卷 Part I Term Translation (20%)Section A: Translate ...