AT_abc251_g.[ABC251G] Intersection of Polygons

省选/NOI-

通过率:0%

AC君温馨提醒

该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

在 xyxy 平面上,给定一个凸 NN 边形 PP,其顶点按逆时针顺序为 (x1, y1), (x2, y2), …, (xN, yN)(x_1,\ y_1),\ (x_2,\ y_2),\ \ldots,\ (x_N,\ y_N)。(其中,xx 轴正方向向右,yy 轴正方向向上。)

对于该多边形 PP,考虑 MM 个凸 NN 边形 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 的顶点为 (x1+ui, y1+vi), (x2+ui, y2+vi), …, (xN+ui, yN+vi)(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)。

对于 QQ 个点 (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 的内部或边界上。

注意,如果点在多边形的边界上,也认为该点包含在多边形内。

输入格式

输入按以下格式从标准输入读入。

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,如果点 (ai, bi)(a_i,\ b_i) 包含在所有 MM 个多边形 P1, P2, …, PMP_1,\ P_2,\ \ldots,\ P_M 内(包括边界),则第 ii 行输出 Yes,否则输出 No。

输入输出样例

  • 输入#1

    5
    -2 -3
    0 -2
    1 0
    0 2
    -2 1
    2
    0 1
    1 0
    6
    0 0
    1 0
    0 1
    1 1
    -1 -1
    -1 -2

    输出#1

    Yes
    No
    Yes
    Yes
    Yes
    No
  • 输入#2

    10
    45 100
    -60 98
    -95 62
    -95 28
    -78 -41
    -54 -92
    -8 -99
    87 -94
    98 23
    87 91
    5
    -57 -40
    -21 -67
    25 39
    -30 25
    39 -20
    16
    4 5
    -34 -8
    -63 53
    78 84
    19 -16
    64 9
    -13 7
    13 53
    -20 4
    2 -7
    3 18
    -12 10
    -69 -93
    2 9
    27 64
    -92 -100

    输出#2

    Yes
    Yes
    No
    No
    Yes
    No
    Yes
    No
    Yes
    Yes
    Yes
    Yes
    No
    Yes
    No
    No

说明/提示

数据范围

  • 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) 按逆时针顺序构成一个凸多边形
  • 多边形 PP 的每个内角均小于 180180 度

样例解释 1

多边形 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 行:

  • (a1, b1)=(0,0)(a_1,\ b_1) = (0, 0) 包含在 P1P_1 和 P2P_2 内,输出 Yes。
  • (a2, b2)=(1,0)(a_2,\ b_2) = (1, 0) 只包含在 P2P_2 内,不包含在 P1P_1 内,输出 No。
  • (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 内,输出 Yes。
  • (a6, b6)=(−1,−2)(a_6,\ b_6) = (-1, -2) 只包含在 P2P_2 内,不包含在 P1P_1 内,输出 No。

注意,位于多边形边界上的点也视为包含在多边形内。

由 ChatGPT 4.1 翻译

输入解题思路,AI测评打分。不知道怎么写?

首页