第十二题:灌溉

题目描述

小蓝负责花园的灌溉工作。

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

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

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

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

输入描述

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

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

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

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

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

输出描述

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

输入输出样例

示例 1

输入

3 6
2
2 2
3 4
1

输出

9

运行限制

  • 最大运行时间:1s
  • 最大运行内存: 128M

分析:

读懂题意了这道题不难。注意的是每过一分钟,出水口上下左右四个方格就会住满水。

代码:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(int argc, char *argv[]) {
	int m,n;
	int a[101][101] = {0};
	int b[101][101] = {0};
	scanf("%d%d",&m,&n);
	
	int t;
	int k;
	scanf("%d",&t);
	int r,c;
	for(int i = 0; i<t; i++) {
		scanf("%d%d",&r,&c);
		a[r][c] = 1;
		b[r][c] = 1;
	}

	scanf("%d",&k);
	while(k) {
		for(int i = 1; i<m+1; i++) {
			for(int j = 0; j<n+1; j++) {
				if(a[i][j] == 1) {
					b[i-1][j] = 1;
					b[i+1][j] = 1;
					b[i][j-1] = 1;
					b[i][j+1] = 1;
				}
			}
		}
		memcpy(a,b,sizeof(b));
		k--;
	}
	int count = 0;
//	for(int i = 1; i<m+1; i++) {
//		for(int j = 1; j<n+1; j++) {
//			printf("%d",a[i][j]);
//		}
//		printf("\n");
//	}
	for(int i = 1; i<m+1; i++) {
		for(int j = 1; j<n+1; j++) {
			if(a[i][j] == 1)
				count++;
		}
	}
	printf("%d",count);
	return 0;
}

相关推荐

  1. 灌溉

    2024-04-05 03:18:03       40 阅读
  2. 章 软件工程(上午

    2024-04-05 03:18:03       41 阅读
  3. 力扣——整数转罗马数字

    2024-04-05 03:18:03       25 阅读
  4. 力扣经典150:跳跃游戏

    2024-04-05 03:18:03       37 阅读
  5. 力扣经典150:简化路径

    2024-04-05 03:18:03       33 阅读
  6. vue面试

    2024-04-05 03:18:03       31 阅读
  7. 章 git

    2024-04-05 03:18:03       50 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-05 03:18:03       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-05 03:18:03       100 阅读
  3. 在Django里面运行非项目文件

    2024-04-05 03:18:03       82 阅读
  4. Python语言-面向对象

    2024-04-05 03:18:03       91 阅读

热门阅读

  1. gitconfig区分工作和个人账号

    2024-04-05 03:18:03       45 阅读
  2. 生成器、迭代器、可迭代对象

    2024-04-05 03:18:03       33 阅读
  3. leetcode268-Missing Number

    2024-04-05 03:18:03       37 阅读
  4. 用筛选法(埃拉托色尼筛法)求100之内的素数

    2024-04-05 03:18:03       35 阅读
  5. 计算机网络概述

    2024-04-05 03:18:03       38 阅读
  6. 域名被污染了怎么恢复

    2024-04-05 03:18:03       34 阅读