P1073相见欢reunion

时间限制 1000 ms内存限制 512 MiB通过率 —
显示算法标签计算几何 · 哈希 · 扫描线

【题目背景】

离开沉没遗迹后,海水浸湿了 Gioush 大队带回的海图,原本相连的航线也散落开来。为了让船队安全返回晨汐港,Ehundategh 决定先将所有残片重新整理完整。

【题目描述】

平面上共有 nn 张边平行于坐标轴的矩形残片。第 ii 张残片的左下角为 (xi,1,yi,1)(x_{i,1},y_{i,1}),右上角为 (xi,2,yi,2)(x_{i,2},y_{i,2}),保证 xi,1<xi,2x_{i,1}<x_{i,2}yi,1<yi,2y_{i,1}<y_{i,2}

残片的位置与方向均已经固定,不能移动或旋转。两张残片可以共用边界。

若存在一个边平行于坐标轴的矩形,使得所有残片的并集恰好等于这个矩形,并且任意两张残片的内部互不相交,那么称这些残片能够完成一次完整拼合

请你判断给出的残片能否完成完整拼合

形式化题意:给定 nn 个边平行于坐标轴的矩形,判断它们的并集是否为一个边平行于坐标轴的矩形,且任意两个矩形的内部是否互不相交。

【输入格式】

从文件 reunion.in\textbf{\textit{reunion.in}} 中读入数据。

本题包含多组测试数据。

输入的第一行包含一个非负整数 cc 与一个正整数 TT,分别表示测试点编号与测试数据的组数。c=0c=0 表示该测试点为样例。

对于每组测试数据:

第一行包含一个正整数 nn,表示矩形残片的数量。

接下来 nn 行,第 ii 行包含四个整数 xi,1,yi,1,xi,2,yi,2x_{i,1},y_{i,1},x_{i,2},y_{i,2},表示第 ii 张残片的左下角与右上角。

【输出格式】

输出到文件 reunion.out\textbf{\textit{reunion.out}} 中。

对于每组测试数据输出一行。若这些残片能够完成完整拼合,输出 Yes。若不能,输出 No

\newpage

【样例 1 输入】

0 340 0 1 11 0 2 10 1 1 21 1 2 220 0 2 11 0 3 130 0 1 11 0 2 10 1 1 2

【样例 1 输出】

YesNoNo

【说明/提示】

【样例 1 解释】

第一组中的四张残片恰好拼成左下角为 (0,0)(0,0)、右上角为 (2,2)(2,2) 的矩形。

第二组中的两张残片发生了重叠。第三组没有覆盖左上方的一块区域,因此后两组都不能完成完整拼合

【样例 2】

见选手目录下的 reunion/reunion2.in\textbf{\textit{reunion/reunion2.in}}reunion/reunion2.ans\textbf{\textit{reunion/reunion2.ans}}

该组样例符合测试点 131\sim 3 的数据范围。

【样例 3】

见选手目录下的 reunion/reunion3.in\textbf{\textit{reunion/reunion3.in}}reunion/reunion3.ans\textbf{\textit{reunion/reunion3.ans}}

该组样例符合测试点 474\sim 7 的数据范围。

【样例 4】

见选手目录下的 reunion/reunion4.in\textbf{\textit{reunion/reunion4.in}}reunion/reunion4.ans\textbf{\textit{reunion/reunion4.ans}}

该组样例符合测试点 8118\sim 11 的数据范围。

【样例 5】

见选手目录下的 reunion/reunion5.in\textbf{\textit{reunion/reunion5.in}}reunion/reunion5.ans\textbf{\textit{reunion/reunion5.ans}}

该组样例符合测试点 121512\sim 15 的数据范围。

【样例 6】

见选手目录下的 reunion/reunion6.in\textbf{\textit{reunion/reunion6.in}}reunion/reunion6.ans\textbf{\textit{reunion/reunion6.ans}}

该组样例符合测试点 162016\sim 20 的数据范围。

【数据范围】

对于 100%100\% 的数据,保证 1T201\leq T\leq 201n2×1051\leq n\leq 2\times 10^5xi,1,yi,1,xi,2,yi,2106\lvert x_{i,1}\rvert,\lvert y_{i,1}\rvert,\lvert x_{i,2}\rvert,\lvert y_{i,2}\rvert\leq 10^6。对于同一个测试点,保证 n2×105\sum n\leq 2\times 10^5

测试点编号nnxi,j,yi,j\lvert x_{i,j}\rvert,\lvert y_{i,j}\rvert特殊性质
131\sim 350\leq 5050\leq 50
474\sim 72×103\leq 2\times 10^3106\leq 10^6
8118\sim 112×105\leq 2\times 10^5106\leq 10^6A
121512\sim 152×105\leq 2\times 10^5106\leq 10^6B
162016\sim 202×105\leq 2\times 10^5106\leq 10^6

特殊性质 A:所有矩形的横、纵坐标分别至多出现 200200 种不同的取值。

特殊性质 B:任意两张矩形残片的内部互不相交。

【题解】

已公开 1 篇题解,官方题解会优先显示。

查看题解