C++实现CCP-CSP认证考试202303-1 田地丈量
时间: 2023-06-24 14:04:26 浏览: 123
题目描述
有一个 $N \times N$ 的矩阵,表示一个平面直角坐标系中的 $N^2$ 个小正方形。每个小正方形可能是黑色或白色。现在,请你编写程序,计算出该矩阵中所有白色小正方形的总面积。
输入格式
第一行包含一个整数 $N$。
接下来 $N$ 行,每行 $N$ 个字符,用来表示整个矩阵。
字符只可能是 `B` 或 `W`,分别表示黑色和白色。
输出格式
输出一个整数,表示该矩阵中所有白色小正方形的总面积。
数据范围
$1 \leq N \leq 100$
输入样例
4
WWBB
WWBB
BBWW
BBWW
输出样例
8
算法1
C++ 代码
相关问题
CCP-CSP认证考试202303-1 田地丈量
题目描述:
农夫约翰想要丈量他的 N(1≤N≤100,000)个田地的面积。他有一条长为 L(1≤L≤1,000,000)的量尺,可以用来测量在一个平面上的距离。每个田地都是一个矩形,且所有矩形的边都平行于坐标轴。每个矩形的左下角和右上角的坐标分别为 (x1,y1) 和 (x2,y2),其中 0≤x1<x2≤L,0≤y1<y2≤L。你需要编写一个程序来计算所有田地的总面积。
输入格式:
第一行包含两个整数 N 和 L。
接下来 N 行,每行包含四个整数 x1,y1,x2,y2,表示一个矩形的左下角和右上角坐标。
输出格式:
输出所有田地的总面积。
样例输入:
3 10
0 0 1 1
1 1 5 5
5 5 10 10
样例输出:
100
解题思路:
首先,根据输入的坐标信息,我们可以计算出每个矩形的面积。这个很简单,只需要将矩形的宽和高相乘即可。
然后,我们需要判断每个矩形是否与其他矩形重叠。如果重叠了,我们就需要将重叠的部分减掉。这个问题也很简单,只需要找出所有相交的矩形,计算它们重叠的面积,然后将它们的面积减掉即可。
最后,将所有矩形的面积加起来,就是所有田地的总面积了。
具体实现时,我们可以使用一个二维数组来表示每个坐标上的矩形数量。然后,我们可以对每个矩形进行遍历,找出所有与它相交的矩形,并计算它们的重叠面积。最后,将所有矩形的面积加起来即可。
参考代码:
阅读全文