QOJ.ac

QOJ

時間限制: 5.0 s 記憶體限制: 512 MB 總分: 100

#8782. 女学生

统计

Alice 在技术课上学习了铰链机构。她制作了一个工具,利用平行四边形的三个顶点(可能重合或共线)来构造第四个顶点。形式化地,给定三个点 $A, B, C$,她可以构造一个点 $D$,使得向量 $\vec{AB}$ 和 $\vec{DC}$ 相等。

Alina 在几何课上学习了正多边形的概念。在本题中,我们使用以下定义:

  • 如果点 $A_1, A_2, \dots, A_n$ ($n \ge 3$) 全部重合,则称它们构成退化的正多边形;
  • 如果点 $A_1, A_2, \dots, A_n$ ($n \ge 3$) 两两不同,位于以某点 $O$ 为圆心的同一个圆上,且满足 $\angle A_1OA_2 = \angle A_2OA_3 = \dots = \angle A_nOA_1 = \frac{360^\circ}{n} = \frac{2\pi}{n}$,并且在所有这些角中,绕 $O$ 点的逆时针旋转 $\frac{2\pi}{n}$ 将 $\vec{OA_i}$ 映射到 $\vec{OA_{(i \bmod n)+1}}$,则称它们按逆时针顺序构成非退化的正多边形;
  • 如果存在点集的一个排列 $A(1), A(2), \dots, A(n)$ 使得这些点按逆时针顺序构成非退化的正多边形,则称点 $A_1, A_2, \dots, A_n$ ($n \ge 3$) 构成非退化的正多边形;
  • 如果点 $A_1, A_2, \dots, A_n$ ($n \ge 3$) 构成退化的正多边形或非退化的正多边形,则称它们构成正多边形。

注意,最后一个定义与点的顺序无关:如果一个点列表构成正多边形,那么它们的任何排列也构成正多边形。

校长 Arina 决定测试女孩们的技能。首先,她让她们在平面上构造 $n + m$ 个点。前 $n$ 个点应按逆时针顺序构成一个非退化的正多边形。接下来的 $m$ 个点中的每一个都使用 Alice 的工具根据三个先前的点构造。

女孩们完成了这部分任务。然后,Arina 开始列举某些点集,并询问它们是否构成正多边形。这对女孩们来说相当困难,所以她们向你寻求帮助。请编写一个程序来处理 Arina 的任务。

输入格式

第一行包含三个整数 $n, m, k$:原始正多边形的顶点数、使用 Alice 工具构造的额外点数,以及 Arina 将要询问的多边形数量 ($3 \le n \le 10^4, 0 \le m \le 3 \cdot 10^4, 1 \le k \le 10^4$)。点 $K_1, K_2, \dots, K_n$ 按逆时针顺序构成一个非退化的正多边形。

接下来的 $m$ 行描述了点 $K_{n+1}, \dots, K_{n+m}$ 是如何构造的。第 $i$ 行包含三个整数 $a_i, b_i, c_i$ ($1 \le a_i, b_i, c_i \le n+i-1$):应用 Alice 工具所依据的三个点的编号。点 $K_{n+i}$ 的定义满足 $\vec{K_{a_i}K_{b_i}} = \vec{K_{n+i}K_{c_i}}$。数字 $a_i, b_i, c_i$ 中的部分或全部可能重合。

接下来的 $k$ 行描述了 Arina 的点集。第 $i$ 行以格式 “$r_i \ P_1^{(i)} \ P_2^{(i)} \ \dots \ P_{r_i}^{(i)}$” 描述第 $i$ 个集合。这意味着女孩们需要检查点 $K_{P_1^{(i)}}, \dots, K_{P_{r_i}^{(i)}}$ 是否构成一个正多边形 ($3 \le r_i \le 3 \cdot 10^4, 1 \le P_j^{(i)} \le n + m$)。保证所有 $r_i$ 的总和不超过 $3 \cdot 10^4$。数字 $P_j^{(i)}$ 中的部分或全部可能重合。

输出格式

输出 $k$ 行。如果 Arina 的第 $i$ 个集合构成正多边形,则第 $i$ 行应包含单词 “Yes”,否则包含 “No”。输出的每个字母不区分大小写。

样例

样例输入 1

3 6 8
1 2 3
3 1 4
5 4 3
3 1 2
4 5 3
4 5 2
6 4 7 6 5 1 2
3 1 3 2
3 1 1 8
4 2 5 6 7
3 2 1 4
3 6 5 9
3 4 7 9
4 1 3 2 8

样例输出 1

Yes
Yes
Yes
No
No
No
Yes
No

说明

样例图片:

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.