清理水草 蓝桥杯模拟

问题描述
小蓝有一个 n * m 大小的矩形水域,小蓝将这个水域划分为 n m 列,行数从 1 n 标号,列数从 1
m 标号。每行和每列的宽度都是单位 1
现在,这个水域长满了水草,小蓝要清理水草。
每次,小蓝可以清理一块矩形的区域,从第 r1 行(含)到第 r2 行(含)的第 c1 列(含)到 c2
(含)。
经过一段时间清理后,请问还有多少地方没有被清理过。
输入格式
输入第一行包含两个整数 n, m ,用一个空格分隔。
第二行包含一个整数 t ,表示清理的次数。
接下来 t 行,每行四个整数 r1, c1, r2, c2 ,相邻整数之间用一个空格分隔,表示一次清理。请注意输入
的顺序。
输出格式
输出一行包含一个整数,表示没有被清理过的面积。
样例输入
2 3
2
1 1 1 3
1 2 2 2
样例输出
2
思路:遍历,用vis数组记录水草是否被清理过,需要注意的是这里遍历水草时,是一格一格进行遍历,不是以矩阵为单位
n,m = map(int,input().split())
t= int(input())
vis=[[0]*(m+1) for i in range(n+1)]#访问数组
cnt=0
for k in range(t):
  r1,c1,r2,c2=map(int,input().split())
  for i in range(r1,r2+1):#遍历范围内未访问的数组
    for j in range(c1,c2+1):
      if vis[i][j]==0 :
        vis[i][j] = 1
        cnt+=1#清理过的草坪+1
print(n*m-cnt)
      

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小梁今天敲代码了吗

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值