#P14884. [ICPC 2019 Yokohama R] Fun Region
[ICPC 2019 Yokohama R] Fun Region
Description
Ciel 博士居住在一个海岸线为多边形的平面岛屿上。她喜欢沿着螺旋路径在岛上散步。这里,一条路径被称为螺旋路径,如果它满足以下两个条件。
- 该路径是一条简单的平面折线,没有自相交。
- 在其所有顶点处,线段方向均为顺时针转向。
下图描绘了四条路径。圆圈标记表示起点,箭头表示路径的终点。在这些路径中,只有最左边的是螺旋路径。
:::align{center}
:::
Ciel 博士认为一个点具有乐趣,如果对于岛屿海岸线的所有顶点,都存在一条螺旋路径从该点出发,到达该顶点,且不穿越海岸线。这里,螺旋路径可以接触或重叠于海岸线。
在下图中,外多边形代表海岸线。点 具有乐趣,而点 不具有乐趣。从 出发的虚线折线是有效的螺旋路径,终点为海岸线顶点。
:::align{center}
:::
:::align{center}
:::
我们可以证明,所有具有乐趣的点构成一个(可能为空的)连通区域,我们称之为乐趣区域。给定海岸线,你的任务是编写一个程序来计算乐趣区域的面积大小。
图 J.1 可视化了下文给出的三个样例。外多边形对应于岛屿的海岸线。乐趣区域显示为灰色区域。
Input Format
输入包含单个测试用例,格式如下。
$$\begin{aligned} &n \\ &x_1 \ y_1 \\ &\vdots \\ &x_n \ y_n \end{aligned}$$是表示海岸线的多边形的顶点数()。接下来的 行中,每行有两个整数 和 ,它们给出了多边形第 个顶点的坐标 ,按逆时针顺序排列。 和 介于 到 之间(含)。这里,坐标系的 轴指向右, 轴指向上。多边形是简单的,即它不自交也不自触。注意,多边形可能是非凸的。保证每个顶点的内角不等于 度。
Output Format
在一行中输出乐趣区域的面积。允许的绝对误差或相对误差小于 。
4
10 0
20 10
10 30
0 10
300.00
10
145 269
299 271
343 193
183 139
408 181
356 324
176 327
147 404
334 434
102 424
12658.3130191
6
144 401
297 322
114 282
372 178
197 271
368 305
0.0
京公网安备 11011102002149号