#P11185. [NHSPC 2023] D. 共同子凸包

[NHSPC 2023] D. 共同子凸包

题目描述

在数学上,一个点集合 SS凸包 (convex hull) 定义为包含 SS 的最小凸集合,记作 Conv(S)\operatorname{Conv}(S)。在平面上,若 SS 为非空有限点集合,则 Conv(S)\operatorname{Conv}(S) 为一包含内部与边界的最小凸多边形,或其退化形式。另一方面,设 E1E_1E2E_2 为平面上的两个点集合。若存在某个二维向量 v\mathbf{v},满足

PE1    P+vE2,P \in E_1 \iff P+\mathbf{v} \in E_2,

则称 E1E_1E2E_2 经过平移后重合。

现给定平面上的有限点集合 S1S_1S2S_2,并考虑它们的非空子集合 T1S1T_1\subseteq S_1T2S2T_2\subseteq S_2。已知子凸包 Conv(T1)\operatorname{Conv}(T_1) 与子凸包 Conv(T2)\operatorname{Conv}(T_2) 面积皆大于 00 且经过平移后重合,请求出 Conv(T1)\operatorname{Conv}(T_1) 所有可能的面积。

以下展示两个子凸包平移后重合的例子。

输入格式

nn mm
x1x_1 y1y_1
x2x_2 y2y_2
\vdots
xnx_n yny_n
ξ1\xi_1 η1\eta_1
ξ2\xi_2 η2\eta_2
\vdots
ξm\xi_m ηm\eta_m

  • nn 代表 S1S_1 的集合大小。
  • mm 代表 S2S_2 的集合大小。
  • xi,yix_i, y_i 代表 S1S_1 包含点 (xi,yi)(x_i, y_i)
  • ξi,ηi\xi_i, \eta_i 代表 S2S_2 包含点 (ξi,ηi)(\xi_i, \eta_i)

输出格式

kk
a1a_1
a2a_2
\vdots
aka_k

样例输入1

6 5
0 2
1 1
1 3
2 3
3 2
4 2
2 0
2 1
2 2
3 1
5 1

样例输出1

1
6
  • kk 代表若子凸包 Conv(T1)\operatorname{Conv}(T_1) 与子凸包 Conv(T2)\operatorname{Conv}(T_2) 经过平移后重合,Conv(T1)\operatorname{Conv}(T_1) 所有可能的非 00 面积数。
  • aia_i 为一整数,代表 Conv(T1)\operatorname{Conv}(T_1) 所有可能的非 00 面积中,第 ii 小的数的两倍

说明/提示

测试数据限制

  • 3n403 \le n \le 40
  • 3m403 \le m \le 40
  • 0xi200 \le x_i \le 20
  • 0yi200 \le y_i \le 20
  • 0ξi200 \le \xi_i \le 20
  • 0ηi200 \le \eta_i \le 20
  • 对任意 i,j{1,2,,n}i, j \in \{1, 2, \ldots, n\},若 iji \ne j,则 (xi,yi)(xj,yj)(x_i, y_i) \ne (x_j, y_j)
  • 对任意 i,j{1,2,,m}i, j \in \{1, 2, \ldots, m\},若 iji \ne j,则 (ξi,ηi)(ξj,ηj)(\xi_i, \eta_i) \ne (\xi_j, \eta_j)
  • 输入的数皆为整数。

评分说明

本题共有四组子任务,条件限制如下所示。 每一组可有一或多个测试数据,该组所有测试数据皆需答对才可获得该组分数。

子任务 分数 额外输入限制
1 77 所有可能的非 00 面积必能从 T1T_1T2T_2 中各选 33 个点得到
2 2323 n+m30n+m \le 30
3 4141 S1=S2S_1 = S_2
4 2929 无额外限制