U715783

JZ 的矢量放大 (JZ's Vector Enlargement)

省选/NOI−

题目背景

承接《JX 的禁言术》。 当 ZS 因为疯狂大喊“99”而被 JX 用“禁言术”封印后,整个班级终于迎来了久违的宁静。 JZ 同学戴上了降噪耳机,终于可以专心致志地进行他的爱好了——在电脑上临摹极其复杂的网页图标。 JZ 发现有些图标放大后会变成模糊的马赛克(位图),而有些图标无论怎么放大都非常清晰。于是,他开始沉迷于用矢量图形来绘制图标。

题目描述

为了绘制一个完美的网页图标,JZ 在一块无限大的虚拟画布上画下了 NN 个矩形。每个矩形都代表了图标的一个基础部件,且每个矩形的边都与画布的坐标轴平行。 这些矩形之间可能会有大量的交叠、嵌套,甚至完全覆盖。

由于 JZ 在作画时使用了同一种纯色颜料,现在他想要将这个图标打印出来并挂在墙上。为了提前购买足够多的颜料,他需要知道整个图标(即这 NN 个矩形覆盖的所有区域)的实际染色总面积。 注意,无论一个区域被多少个矩形重叠覆盖,它都只需要被染色一次。

请你编写程序,帮 JZ 计算出这 NN 个矩形在画布上覆盖的并集面积。

输入格式

第一行包含一个整数 NN,表示 JZ 画下的矩形总数。 接下来 NN 行,每行包含四个整数 x1,y1,x2,y2x_1, y_1, x_2, y_2,分别表示一个矩形的左下角和右上角的坐标。 保证 x1<x2x_1 < x_2 且 y1<y2y_1 < y_2。

输出格式

输出一行,包含一个整数,表示这 NN 个矩形覆盖的总染色面积。

输入输出样例

输入样例 #1

text
2
1 1 3 3
2 2 4 4

输出样例 #1

text
7

输入样例 #2

text
3
0 0 10 10
2 2 4 4
6 6 12 12

输出样例 #2

text
128

说明/提示

【样例解释 1】

第一个矩形的面积为 (3−1)×(3−1)=4(3-1) \times (3-1) = 4。 第二个矩形的面积为 (4−2)×(4−2)=4(4-2) \times (4-2) = 4。 它们重叠的区域是一个左下角为 (2,2)(2, 2),右上角为 (3,3)(3, 3) 的正方形,面积为 11。 因此总覆盖面积为 4+4−1=74 + 4 - 1 = 7。

数据规模与约定

  • 对于 30%30\% 的数据,1≤N≤10001 \le N \le 1000,0≤x1,y1,x2,y2≤10000 \le x_1, y_1, x_2, y_2 \le 1000。
  • 对于 100%100\% 的数据,1≤N≤1051 \le N \le 10^5,0≤x1,y1,x2,y2≤1090 \le x_1, y_1, x_2, y_2 \le 10^9。

🚀 提交评测

登录并绑定洛谷账号后即可在此在线提交代码并实时评测。

前往登录

💡 题解 (0)

登录后即可撰写并分享您的解题思路。

暂无题解,快来发布全站第一篇题解吧!

💬 题目讨论 (0)

登录后可以发起或参与讨论。

暂无讨论内容。

📊 题目信息

题号U715783
难度省选/NOI−
时间限制1000 ms
内存限制512 MB
题目来源洛谷题库
算法标签
线段树离散化扫描线

⚡ 快速操作

在线提交代码在洛谷打开原题 ↗