清理水草 蓝桥杯模拟

2023-10-29

问题描述
小蓝有一个 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)
      

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

清理水草 蓝桥杯模拟 的相关文章