QOJ.ac

QOJ

実行時間制限: 1.0 s メモリ制限: 256 MB 満点: 100 ハック可能 ✓

#9175. 几何黑客

統計

Jeroen 设计了一种判断点是否在多边形内的新算法: 给定一个简单多边形 $p_0, p_1, \dots, p_{n-1}$ 和一个查询点 $\mathbf{q}$,他的算法执行以下步骤:

  • 初始化 $ans := 0$
  • 从 $\mathbf{q}$ 出发,沿 $x$ 轴正方向作一条射线。
  • 对于所有 $0 \le i < n$:检查闭合线段 $p_i p_{(i+1) \pmod n}$ 是否与射线相交,如果相交,则 $ans$ 加 1。
  • 对于所有 $0 \le i < n$,如果 $p_i$ 落在射线上,则 $ans$ 加 1。
  • 如果 $ans$ 为奇数,算法判定点在多边形内,否则判定在多边形外。

他确信自己的算法是正确的,但你必须证明他是错的。为了让他难堪,你需要寻找一些多边形,使得点 $(0, 0)$ 严格在多边形内部(即不在边界上),但他的算法却判定该点在外部。考虑所有顶点坐标为整数的简单多边形,并按面积对这个无限列表进行排序(面积相同时顺序任意)。给定输入中的整数 $k \le 10^3$,输出该列表中的前 $k$ 个多边形。如果存在多种可能的答案,你可以输出其中任意一种。

注意,如果多边形 $\mathbf{a}$ 的点列表是多边形 $\mathbf{b}$ 的点列表的循环移位,则认为这两个多边形相同。如果多边形 $\mathbf{a}$ 的点列表的逆序是 $\mathbf{b}$ 的点列表的循环移位,也认为这两个多边形相同。因此,在无限列表中,这两种情况只计入一个多边形。注意,尽管在多边形的一条边上放置一个额外的整数点会产生相同的形状,但这会被视为一个不同的多边形。

输入格式

输入仅包含一个整数 $k$ ($1 \le k \le 1000$),表示你需要输出的多边形数量。

输出格式

对于前 $k$ 个 Jeroen 算法失效的多边形,按面积从小到大排序,输出其描述: 描述的第一行输出 $n$,即多边形的顶点数。 接下来的 $n$ 行,每行输出两个整数 $x$ 和 $y$ ($|x|, |y| \le 10^9$),表示多边形的顶点坐标。

根据题目约束,可以证明,如果前 $k$ 个有效多边形的最小面积为 $A_1 \le A_2 \le \dots \le A_k$,那么增加坐标绝对值不超过 $10^9$ 的约束不会改变这个面积列表。

注意,输出的多边形必须是简单多边形。

样例

输入 1

2

输出 1

4
-1 0
0 1
1 0
0 -1
3
0 -4
3 5
-3 5

说明

样例输入的输出实际上是错误的。它仅用于展示输出格式。这两个多边形都包含点 $(0, 0)$,但 Jeroen 的算法并没有失效,且它们的面积也不保证是最小的两个面积。

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.