蓝桥杯模拟题----清理水草

问题描述:

小蓝有一个 n * m 大小的矩形水域,小蓝将这个水域划分为 n 行 m 列,行数从 1 到 n 标号,列数从 1 到 m 标号。每行和每列的宽度都是单位 1 。
现在,这个水域长满了水草,小蓝要清理水草。
每次,小蓝可以清理一块矩形的区域,从第 r1 行(含)到第 r2 行(含)的第 c1 列(含)到 c2 列(含)。
经过一段时间清理后,请问还有多少地方没有被清理过。

输入格式:

输入第一行包含两个整数 n, m,用一个空格分隔。
第二行包含一个整数 t ,表示清理的次数。
接下来 t 行,每行四个整数 r1, c1, r2, c2,相邻整数之间用一个空格分隔,表示一次清理。请注意输入的顺序。

输出格式:

输出一行包含一个整数,表示没有被清理过的面积。


 样例输入1:

2 3
2
1 1 1 3
1 2 2 2

样例输出1:

2

样例输入2:

30 20
2
5 5 10 15
6 7 15 9

样例输出2:

519

评测用例规模与约定:
对于所有评测用例,1 <= r1 <= r2 <= n <= 100, 1 <= c1 <= c2 <= m <= 100, 0 <= t <= 100。


代码如下:

#include<iostream>
#include<cstring>
#include<cstdio>
#include<algorithm>

using namespace std;
int st[105][105] = {0};

int main()
{
	int n,m;
	cin >> n >> m;
	int x1,y1,x2,y2;
	int t;
	cin >> t;
	int cnt = 0;
	while(t--){
		cin >> x1 >> y1 >> x2 >> y2;
		for(int i=x1;i<=x2;i++){
			for(int j=y1;j<=y2;j++){
				if(st[i][j] == 0){
					st[i][j] = 1;
					cnt++;
				}
			}
		}
	}
	cout << n*m-cnt << endl;
	return 0;
} 

  • 10
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值