#6732. G - Intersection of Polygons

0

G - Intersection of Polygons

当前没有测试数据。

G - 多边形的交集

得分:600600 点

问题描述

在一个二维直角坐标系中,给定一个凸多边形PP的NN个顶点(x1,y1),(x2,y2),…,(xN,yN)(x_1, y_1), (x_2, y_2), \ldots, (x_N, y_N)。(这里,xx轴的正方向是向右的,yy轴的正方向是向上的)

基于多边形PP,我们考虑MM个凸多边形P1,P2,…,PMP_1, P_2, \ldots, P_M。

对于i=1,2,…,Mi = 1, 2, \ldots, M,多边形PiP_i是通过将PP向xx轴的正方向平移uiu_i,向yy轴的正方向平移viv_i得到的。换句话说,PiP_i的顶点是$(x_1+u_i, y_1+v_i), (x_2+u_i, y_2+v_i), \ldots, (x_N+u_i, y_N+v_i)$。

对于每一个点(a1,b1),(a2,b2),…,(aQ,bQ)(a_1, b_1), (a_2, b_2), \ldots, (a_Q, b_Q),判断是否“点同时位于所有的MM个多边形P1,P2,…,PMP_1, P_2, \ldots, P_M中”。这里,如果点在多边形的边界上,也视为点在多边形中。

约束条件

  • 3≤N≤503 \leq N \leq 50
  • 1≤M≤2×1051 \leq M \leq 2 \times 10^5
  • 1≤Q≤2×1051 \leq Q \leq 2 \times 10^5
  • −108≤xi,yi≤108-10^8 \leq x_i, y_i \leq 10^8
  • −108≤ui,vi≤108-10^8 \leq u_i, v_i \leq 10^8
  • −108≤ai,bi≤108-10^8 \leq a_i, b_i \leq 10^8
  • 输入中的所有值均为整数
  • (x1,y1),(x2,y2),…,(xN,yN)(x_1, y_1), (x_2, y_2), \ldots, (x_N, y_N)按逆时针顺序排列构成了凸NN边形
  • 多边形PP的每个内角小于180180度

输入

从标准输入读入数据,数据格式如下:

NN

x1x_1 y1y_1

x2x_2 y2y_2

⋮\vdots

xNx_N yNy_N

MM

u1u_1 v1v_1

u2u_2 v2v_2

⋮\vdots

uMu_M vMv_M

QQ

a1a_1 b1b_1

a2a_2 b2b_2

⋮\vdots

aQa_Q bQb_Q

输出

输出QQ行。对于i=1,2,…,Qi = 1, 2, \ldots, Q,第ii行输出Yes表示点(ai,bi)(a_i, b_i)同时位于所有的MM个多边形P1,P2,…,PMP_1, P_2, \ldots, P_M中,输出No表示没有。

样例解释

多边形PP是一个五边形,它的顶点是(−2,−3),(0,−2),(1,0),(0,2),(−2,1)(-2, -3), (0, -2), (1, 0), (0, 2), (-2, 1)。

  • 多边形P1P_1是将PP向xx轴的正方向平移00个单位,向yy轴的正方向平移11个单位得到的多边形,它的顶点是(−2,−2),(0,−1),(1,1),(0,3),(−2,2)(-2, -2), (0, -1), (1, 1), (0, 3), (-2, 2)。
  • 多边形P2P_2是将PP向xx轴的正方向平移11个单位,向yy轴的正方向平移00个单位得到的多边形,它的顶点是(−1,−3),(1,−2),(2,0),(1,2),(−1,1)(-1, -3), (1, -2), (2, 0), (1, 2), (-1, 1)。

所以应该输出以下66行:

  • 第一行输出Yes,因为(a1,b1)=(0,0)(a_1, b_1) = (0, 0)同时位于P1P_1和P2P_2中。
  • 第二行输出No,因为(a2,b2)=(1,0)(a_2, b_2) = (1, 0)只位于P2P_2中,不在P1P_1中。
  • 第三行输出Yes,因为(a3,b3)=(0,1)(a_3, b_3) = (0, 1)同时位于P1P_1和P2P_2中。
  • 第四行输出Yes,因为(a4,b4)=(1,1)(a_4, b_4) = (1, 1)同时位于P1P_1和P2P_2中。
  • 第五行输出Yes,因为(a5,b5)=(−1,−1)(a_5, b_5) = (-1, -1)同时位于P1P_1和P2P_2中。
  • 第六行输出No,因为(a6,b6)=(−1,−2)(a_6, b_6) = (-1, -2)只位于P2P_2中,不在P1P_1中。

注意:一个处于多边形边界上的点也被视为在多边形内。