AT_tricky_5 雲と影
题目描述
$xy$ 平面为地面,$z$ 轴自地面垂直向上。在本题中,太阳视为点光源,云视为无厚度的多边形。
这个世界有两个太阳,分别位于坐标 $({8192}^{65536},\ {8192}^{65536},\ {8192}^{65536})$ 和 $(-{8192}^{65536},\ -{8192}^{65536},\ {8192}^{65536})$。
云位于上空 $H$,即 $z = H$ 的平面上,可以有多个云。
云会遮挡太阳的光线,若某处地面无法被任一太阳照射,则该处会形成阴影。
现在,地面上形成了一个多边形形状的阴影。
给定地面上阴影的多边形形状,请求出云的总面积的最小值。
第一行输入测试用例的数量 $T$。
接下来有 $T$ 个测试用例。
每个测试用例的第一行给出阴影多边形的顶点数 $N$ 和云所在的 $z$ 坐标 $H$,用空格分隔。
接下来的 $N$ 行,每行给出一个顶点的 $x$ 坐标和 $y$ 坐标,用空格分隔。
多边形的顶点按顺时针或逆时针顺序给出。
- $T,\ N$ 满足以下两种情况之一:
- $0 \leq T \leq 4096$ 且 $3 \leq N \leq 16$
- $T = 1$ 且 $N = 2048$
- $1 \leq H \leq 64$,$H$ 为整数。
- 多边形每个顶点的坐标绝对值不超过 $32$。
- 多边形每个顶点的坐标为小数点后恰好两位的小数。
- 多边形为简单多边形,即无自交。
- 多边形任意连续三个顶点不共线。
对于每个测试用例,输出云的总面积的最小值。结果四舍五入保留两位小数。
例如:
```
2
4 5
0.00 1.00
1.00 1.00
1.00 0.00
0.00 0.00
3 64
0.00 1.00
1.00 0.00
0.00 0.00
```
输出:
```
2.00
1.00
```
输入格式
第一行输入一个整数 $T$,表示测试用例数量。
对于每个测试用例:
第一行输入两个整数 $N$ 和 $H$,分别表示阴影多边形的顶点数和云的高度。
接下来的 $N$ 行,每行输入两个实数 $x$ 和 $y$,表示多边形一个顶点的坐标。
输出格式
对于每个测试用例,输出一个实数,表示云的总面积的最小值。结果四舍五入保留两位小数。
说明/提示
无。
由 ChatGPT 4.1 翻译