做网站怎样调用支付宝接口,怎样建网站得花多少钱,做外贸的网站平台有哪些,网站策划书的主题有哪些题目描述
X星球的一批考古机器人正在一片废墟上考古。该区域的地面坚硬如石、平整如镜。 管理人员为方便#xff0c;建立了标准的直角坐标系。 经过各种测量#xff0c;每个机器人都会报告一个或多个矩形区域#xff0c;作为优先考古的区域。 矩形的表示格式为(x1,y1,x2,y2…题目描述
X星球的一批考古机器人正在一片废墟上考古。该区域的地面坚硬如石、平整如镜。 管理人员为方便建立了标准的直角坐标系。 经过各种测量每个机器人都会报告一个或多个矩形区域作为优先考古的区域。 矩形的表示格式为(x1,y1,x2,y2)代表矩形的两个对角点坐标。 为了醒目总部要求对所有机器人选中的矩形区域涂黄色油漆。 小明并不需要当油漆工只是他需要计算一下一共要耗费多少油漆。 其实这也不难只要算出所有矩形覆盖的区域一共有多大面积就可以了。 注意各个矩形间可能重叠。本题的输入为若干矩形要求输出其覆盖的总面积。
输入
第一行一个整数n表示有多少个矩形(1n10000) 接下来的n行每行有4个整数x1 y1 x2 y2空格分开表示矩形的两个对角顶点坐标。 (0 x1,y1,x2,y2 10000)
输出
一行一个整数表示矩形覆盖的总面积。
样例输入
3 1 5 10 10 3 1 20 20 2 7 15 17
样例输出
340
代码如下
#include iostream
using namespace std;
const int N 10001;
bool vis[N][N];int main() {int n, x1, x2, y1, y2, sum 0;cin n;for (int i 0; i n; i) {cin x1 y1 x2 y2;if (x1 x2)swap(x1, x2);if (y1 y2)swap(y1, y2);for (int i x1; i x2; i) {for (int j y1; j y2; j) {if (!vis[i][j]) {sum;vis[i][j] 1;}}}}cout sum endl;return 0;}注意 这种暴力枚举的方法虽然简单但消耗了极大的空间这里的vis数组一定要用bool,如果用int就会超出空间因为bool占用1个字节而int占用4个字节