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<

在这里插入图片描述

相关内容

热门资讯

我的假期英语作文【优秀6篇】 我的假期英语作文 篇一My Holiday AdventureDuring my summer va...
英语六级作文 英语六级作文(通用13篇)  在日常生活或是工作学习中,大家都不可避免地会接触到作文吧,作文是人们以...
英语写作素材积累:高级词汇【... 英语写作素材积累:高级词汇 篇一In today's globalized world, havin...
手机的作用英语作文(精简5篇... 手机的作用英语作文 篇一The Importance of Mobile PhonesMobile ...
我的同桌中英文作文【精选6篇... 我的同桌中英文作文 篇一Title: My Desk MateI have had the same...
清洁工的英语作文(精简6篇) 清洁工的英语作文 篇一The Importance of Cleaners in Our Socie...
又是一天作文200字(精选3... 又是一天作文200字 篇一阳光洒在我的脸上,唤醒了我美好的一天。我迅速起床,洗漱完毕后,走进厨房准备...
唯美英语小句子【经典6篇】 唯美英语小句子 篇一In the fast-paced world we live in, it i...
自我优秀介绍范文英语作文60... 自我优秀介绍范文英语作文 第一篇My name’s Lin Yanyi, I’m eight, I’...
英语解析与检测作文范文(精简... 英语解析与检测作文范文 篇一标题:The Importance of Learning Englis...
高考英语劳动教育范文7篇(精... 高考英语劳动教育范文7篇 篇一:劳动教育的重要性劳动教育是培养学生实践能力和劳动意识的重要途径。在过...
我的学校英语作文 我的学校英语作文(精选21篇)  在日常学习、工作或生活中,大家对作文都再熟悉不过了吧,写作文可以锻...
This is me英语作文 This is me英语作文2篇  在日复一日的学习、工作或生活中,大家都不可避免地会接触到作文吧,...
他伤心了作文范文英语【优秀6... 他伤心了作文范文英语 篇一Title: The Heartache of His SadnessIn...
成人高考英语作文【精彩6篇】 成人高考英语作文 篇一The Importance of Lifelong LearningIn t...
旅行计划英语作文【优秀6篇】 旅行计划英语作文 篇一My Dream Trip to ParisI have always dre...
我的英语老师英语作文(优质6... 我的英语老师英语作文 篇一我有一个非常出色的英语老师,她是我最喜欢的老师之一。她不仅教授我们英语知识...
关于交通的英语句子【通用3篇... 关于交通的英语句子 篇一Title: The Importance of Traffic Educa...
大一英语作文简介范文23篇(... 大一英语作文简介范文23篇 篇一标题:The Importance of Time Manageme...
自我介绍英语作文 自我介绍英语作文通用10篇  在日常学习、工作或生活中,大家都跟作文打过交道吧,通过作文可以把我们那...