P16320 [ICPC 2023 Jinan R] 近似凸多边形

题目描述

这是一个关于凯文的故事,他是小青鱼的朋友。 凯文是国际凸多边形大赛(ICPC)的裁判长。他为比赛准备了一道几何题。然而,由于他对计算几何不熟悉,他无法为这道题生成正确的凸多边形作为测试数据。 为此凯文很沮丧。他的好朋友小青鱼如此安慰他:“虽然你生成的数据不是凸多边形,但你可以称它为近似凸多边形!” 给定一个由二维平面上的点组成的集合 $S$(包含至少 $3$ 个点),其中任意两点的坐标都不相同,且任意三个点都不共线。小青鱼称一个多边形 $P$ 为近似凸多边形,当且仅当: - 多边形 $P$ 是简单多边形,也就是说,多边形的顶点两两不同,且除了相邻边存在公共顶点外,不存在两条边有公共点。 - 多边形的顶点属于 $S$,且 $S$ 中所有点要么在多边形内部,要么在多边形的边界上。 令 $\mathbb{U}$ 表示所有近似凸多边形构成的集合。可以证明 $\mathbb{U}$ 是一个有限集合,且不是空集合。因此,存在一个多边形 $R$ 使得 $|R|$ 在 $\mathbb{U}$ 的所有多边形中是最小的($|R|$ 是多边形 $R$ 的顶点数量)。 凯文和小青鱼希望您能计算多边形 $Q \in \mathbb{U}$ 的数量,满足 $|Q| \le |R| + 1$。

输入格式

每个测试文件仅有一组测试数据。 第一行输入一个整数 $n$($3 \le n \le 2 \times 10^3$)表示集合 $S$ 中点的数量。 对于接下来 $n$ 行,第 $i$ 行输入两个整数 $x_i$ 和 $y_i$($-10^6 \le x_i, y_i \le 10^6$)表示集合 $S$ 中的一个点 $(x_i, y_i)$。 保证 $S$ 中任意两点的坐标都不相同,且任意三个点都不共线。

输出格式

输出一行一个整数表示多边形 $Q$ 的数量。

说明/提示

对于第一组样例数据,$|R| = 4$。所有多边形 $Q$ 如下所示。 :::align{center} ![](https://cdn.luogu.com.cn/upload/image_hosting/wx6j9iir.png) ::: 对于第二组样例数据,$|R| = 3$。所有多边形 $Q$ 如下所示。 :::align{center} ![](https://cdn.luogu.com.cn/upload/image_hosting/4uy8hal1.png) :::