#P15084. [ICPC 2024 Chengdu R] Two Convex Holes

    ID: 15030 远端评测题 5000ms 1024MiB 尝试: 0 已通过: 0 难度: 9 上传者: 标签>计算几何2024Special JudgeICPC成都

[ICPC 2024 Chengdu R] Two Convex Holes

说明

考虑三维笛卡尔坐标系中的两个不透明平面 z=z1z = z_1z=z2z = z_2z1<z2z_1 < z_2)。每个平面上都有一个凸多边形孔洞,分别记为 P1P_1P2P_2,允许光线通过。

有一个点光源 LL 在平面 z=z0z = z_0z2<z0z_2 < z_0)上沿平行于 xOyxOy 平面的方向移动。光源在时刻 t=0t = 0 从初始位置 (x0,y0,z0)(x_0, y_0, z_0) 出发,以恒定速度 v=(vx,vy,0)\boldsymbol{v} = (v_x, v_y, 0) 运动。因此,在任意时刻 tt,光源的位置为 (x0+vxt,y0+vyt,z0)(x_0 + v_x t, y_0 + v_y t, z_0)

对于平面 z=0z = 0 上的一个点 AA,定义它在时刻 tt照亮,当且仅当线段 LALA 与两个多边形 P1P_1P2P_2 的内部(包括边界)均相交。时刻 tt照亮面积,记为 f(t)f(t),是平面 z=0z = 0 上所有被照亮点形成的面积。

定义在时间段 [t1,t2][t_1, t_2] 上的平均照亮面积,记为 E[f(t)tU(t1,t2)]\mathbb{E}[f(t) | t \sim U(t_1,t_2)],为 f(t)f(t) 在区间 [t1,t2][t_1, t_2] 上的期望值,其中 tt 假设为 [t1,t2][t_1, t_2] 上均匀分布的随机变量。

给定多个时间段 [t1,t2][t_1, t_2],你的任务是找出每个时间段内的平均照亮面积。

输入格式

  • 第一行包含一个整数 TT1T1041\le T\le 10^4),表示测试用例的数量。
  • 对于每个测试用例:
    • 第一行包含五个整数 x0x_0y0y_0z0z_0vxv_xvyv_y105x0,y0105-10^5 \le x_0, y_0 \le 10^51z01051 \le z_0 \le 10^5103vx,vy103-10^3 \le v_x, v_y \le 10^3),分别表示光源的初始位置 (x0,y0,z0)(x_0, y_0, z_0) 及其速度向量 v=(vx,vy,0)\boldsymbol{v} = (v_x, v_y, 0)。保证 v(0,0,0)\boldsymbol{v} \neq (0, 0, 0)
    • 第二行包含两个整数 n1n_1z1z_13n11053 \le n_1 \le 10^51z11051 \le z_1 \le 10^5),分别表示多边形 P1P_1 的顶点数和 z1z_1 的值。接下来的 n1n_1 行每行包含两个整数 xix_iyiy_i105xi,yi105-10^5 \le x_i, y_i \le 10^5),按逆时针顺序描述 P1P_1 的顶点。
    • 接下来一行包含两个整数 n2n_2z2z_23n21053 \le n_2 \le 10^51z21051 \le z_2 \le 10^5),分别表示多边形 P2P_2 的顶点数和 z2z_2 的值。接下来的 n2n_2 行每行包含两个整数 xjx_jyjy_j105xj,yj105-10^5 \le x_j, y_j \le 10^5),按逆时针顺序描述多边形 P2P_2 的顶点。
    • 保证 P1P_1P2P_2 均无三点或更多点共线。
    • 接下来一行包含一个整数 qq1q1051 \le q \le 10^5),表示查询的数量。接下来的 qq 行每行包含两个整数 t1t_1t2t_20t1t21030 \le t_1 \le t_2 \le 10^3),表示一个时间段。
  • 保证所有测试用例的 n1+n2n_1+n_2 之和以及 qq 之和分别不超过 10510^5,且 z1<z2<z0z_1 < z_2 < z_0

输出格式

对于每个查询,输出一个实数表示平均照亮面积。只有当你的答案与正确答案的相对误差或绝对误差不超过 10410^{-4} 时,才被视为正确。

1
0 0 3 0 -1
4 1
1 0
3 0
3 2
1 2
4 2
0 0
1 0
1 1
0 1
3
0 10
1 2
1 1
0.450000000
1.125000000
2.250000000

提示

对于此示例,凸多边形 P1P_1P2P_2t=0t=0 时刻在 xOyxOy 平面上的投影,以及这些投影的运动,如下图所示。多边形 A1B1C1D1A_1B_1C_1D_1 是多边形 P1P_1 的投影,多边形 A2B2C2D2A_2B_2C_2D_2 是多边形 P2P_2 的投影。

:::align{center} :::

翻译由 DeepSeek V3 完成