蓝桥杯真题 您所在的位置:网站首页 清理还有多少天 蓝桥杯真题

蓝桥杯真题

2024-06-12 12:34| 来源: 网络整理| 查看: 265

题目 问题描述

小蓝有一个 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 样例输入 30 20 2 5 5 10 15 6 7 15 9 样例输出 519 评测用例规模与约定

对于所有评测用例,1≤r1≤r2≤n≤100,1≤c1≤c2≤m≤100,0≤t≤100。

运行限制 最大运行时间:1s最大运行内存: 256M 解题 根据给出的输入样例可以很找出规律: 假设已被清理的状态用 1 表示, 未被清理的区域用 0 表示因此,2 x 3 大小的矩形水域的初始状态如下: 0 0 0 0 0 0随后,清理水域第一次清理水域:x轴: 1 -> 1 ,y轴:1 -> 3,如下所示: 1 0 1 0 1 0第二次清理水域:x轴:1 -> 2,y轴:2 -> 2,如下所示: 1 0 1 1 1 1 注意: 在第二次清理水域时,(2,1)位置的水域已被清理,所以不用再改变水域的状态 通过分析演示清理水域的过程,可以发现解题的关键在于:清理水域以及清理水域范围的表示 清理水域: 某位置水域状态为 0 且在水域范围内 时,该水域位置状态置 1水域状态为 1 时,不改变水域状态 清理水域范围的表示: 因为清理水域的范围是矩形,第一感觉是使用数组记录水域范围但转念一想,好像也不需要保存相关数据,只需要给定清理水域的遍历范围即可因此,使用四个变量记录水域范围即可实现 package 蓝桥杯题库题解; import java.util.Scanner; public class 清理水域 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int m = sc.nextInt(); int t = sc.nextInt(); int[][] sy = new int[n+1][m+1]; int i,j,k,sum = 0; for(i = 0;i for (k = c1; k continue; } sy[j][k] = 1; sum++; } } } System.out.println(n * m - sum); } }


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有