#P6256. [ICPC 2019 WF] Directing Rainfall
[ICPC 2019 WF] Directing Rainfall
Description
波尔图和附近的杜罗河谷因生产波特酒而闻名。来自世界各地的葡萄酒爱好者来到这里品尝这种甜美的葡萄酒。国际波特酒鉴赏家联盟(ICPC)正在组织到杜罗河上游葡萄园的旅行。为了让游客的参观更加愉快,ICPC 最近在葡萄园上方安装了遮阳篷。这些遮阳篷保护游客在葡萄藤间漫步和品尝陈年波特酒时不被晒伤。
不幸的是,遮阳篷存在一个小问题。葡萄需要阳光和水才能生长。虽然遮阳篷能透过足够的阳光,但它们完全防水。这意味着雨水可能无法到达下方的葡萄园。如果不采取措施,今年的葡萄酒收成将岌岌可危!
ICPC 想通过在遮阳篷上打孔来解决这个问题,以便雨水能透过遮阳篷到达下方的葡萄园。由于雨季即将到来,时间紧迫,ICPC 希望以最少的打孔次数实现这一目标。我们将考虑这个问题的二维版本。需要浇灌的葡萄园是 轴上的一个区间,遮阳篷被建模为 轴上方的线段。遮阳篷是倾斜的,即不平行于 轴或 轴(参见图 F.1 了解示例)。雨水从无限高处直线下落。当雨水落在遮阳篷上时,它会流向遮阳篷的低端并从那里落下,除非在雨水落下的地方和遮阳篷的低端之间有一个孔——在这种情况下,雨水将通过孔落下。雨水从遮阳篷上落下后,继续垂直下落。
这种情况会重复,直到雨水落到地面( 轴)上。
出于法律原因,您必须确保至少有一些雨水是直接从葡萄园上方落到葡萄园的。这是为了防止任何葡萄园从邻近的葡萄园窃取所有的雨水(参见第二个样例输入了解示例)。
Input Format
输入的第一行包含三个整数 、 和 ,其中 是表示葡萄园的区间, 是遮阳篷的数量。接下来的 行中的每一行描述一个遮阳篷,包含四个整数 ,其中 是遮阳篷低端的位置, 是高端的位置 且 。
输入中给出的 坐标(、 以及所有遮阳篷的 和 的值)都是不同的。输入中描述的遮阳篷不会相交,且没有遮阳篷的端点会位于另一个遮阳篷上。
Output Format
输出需要打孔的最小次数,以便从葡萄园上方落下的雨水能够到达葡萄园。
10 20 5
32 50 12 60
30 60 8 70
25 70 0 80
15 30 28 40
5 20 14 25
2
2 4 2
3 2 0 3
5 2 1 5
1
Hint
来源:ICPC 世界总决赛 2019 问题 F:引导降雨。
题面翻译由 ChatGPT-4o 提供。
京公网安备 11011102002149号