#P12717. [GCJ 2022 Finals] Goose, Goose, Ducks?
[GCJ 2022 Finals] Goose, Goose, Ducks?
题目描述
首届国际鹅类大会刚刚结束,尽管这本应是一件值得高兴的事,却让人五味杂陈。组织者发现了一份文件,详细记录了鸭子的渗透计划。现在,他们正试图从与会者中找出这群渗透者。
找到的文件中包含 个整数三元组 ,表示鸭子们会在会议开始后恰好 秒在点 处集合,该点位于会议大厅中心以东 米、以北 米处。每只鹅可能在这些特定时间出现在这些特定地点,也可能没有,但每只鸭子一定都在。
鸭子和鹅的最大行走速度均为每秒 1 米,这意味着在时间 处于点 的与会者可以在时间 前到达任何形如 的点,只要满足 。每位与会者在时间 0 时的位置可以是任意点,与其他与会者无关。
发现文件后,组织者召开了一场质询会以试图识别鸭子。在质询过程中,与会者依次发表了一系列声明。按发表顺序,第 条声明由与会者 作出,声称他们和与会者 在会议开始后恰好 秒时位于点 。声明中的点可能是也可能不是鸭子集合的地点。
鹅的声明总是真实的,但鸭子可能撒谎。此外,鸭子知道哪些与会者是鸭子,哪些是鹅。为了避免轻易暴露,鸭子只会发表与之前鹅作出的所有声明一致的声明。注意,鹅的声明与所有鸭子都参加了所有鸭子集合是一致的。
根据提供的信息,可能无法确定所有鸭子。然而,知道鸭子的最小数量至少可以为鸭子活动的活跃程度提供一个下限。注意,至少存在一只鸭子。请找出这一最小数量。
形式化地,假设 是将所有与会者划分为鸭子集合(称为 -鸭子)和鹅集合(称为 -鹅)的一种分类。 与一组声明 一致的条件是:存在每位与会者以不超过每秒 1 米的速度移动的路径,满足:
- 所有 -鸭子都参加了所有鸭子集合;
- 对于 中每一条声称 在时间 于点 看到 的声明, 和 的路径在时间 都经过点 。
假设 在一组声明 下是可行的,如果:
- -鸭子非空(即至少存在一只鸭子),
- 中由 -鹅成员作出的所有声明的子集与 一致(即鹅的声明总是真实的),
- 对于 中由 -鸭子成员作出的每一条声明 ,如果 是在 之前由 -鹅成员作出的声明的子集,则存在一个假设 (可能与 相同也可能不同)使得 与 一致(即鸭子不会与之前鹅的声明矛盾)。
注意,-鸭子包含所有与会者的假设 总是可行的。
求出所有可行假设 中 -鸭子集合的最小大小。
输入格式
输入的第一行给出测试用例的数量 。随后是 个测试用例。每个测试用例的第一行包含三个整数 、 和 ,分别表示与会者数量、鸭子集合数量和声明数量。接下来的 行每行描述一个鸭子集合,包含三个整数 、 和 ,表示在点 处有一个集合,时间为会议开始后恰好 秒。然后,每个测试用例的最后 行描述声明。第 行描述第 条声明,包含五个整数 、、、 和 ,表示与会者 声称他们和与会者 在会议开始后恰好 秒时位于点 。
输出格式
对于每个测试用例,输出一行 Case #x: y
,其中 是测试用例编号(从 1 开始), 是可能渗透会议的最小鸭子数量。
输入输出样例 #1
输入 #1
2
2 1 2
1 2 3
1 2 1 1 1
2 1 2 2 2
4 2 4
4 3 10
-4 -3 20
1 3 4 3 11
2 4 0 0 16
3 1 6 3 9
4 2 0 0 16
输出 #1
Case #1: 1
Case #2: 2
说明/提示
样例解释
在样例 #1 中,与会者 1 是唯一的鸭子是一个可行的假设。
在样例 #2 中,与会者 2 和 4 是唯一的鸭子是一个可行的假设。注意,至少存在一只鸭子,因此所有与会者都是鹅的假设不可行。
限制条件
- 。
- ,对所有 。
- ,对所有 。
- ,对所有 。
- ,对所有 。
- $(\mathbf{X}_i - \mathbf{X}_{i+1})^2 + (\mathbf{Y}_i - \mathbf{Y}_{i+1})^2 \leq (\mathbf{C}_i - \mathbf{C}_{i+1})^2$,对所有 。
- ,对所有 。
- ,对所有 。
- ,对所有 。
- ,对所有 。
- ,对所有 。
- ,对所有 。
- $(\mathbf{A}_j, \mathbf{B}_j, \mathbf{U}_j, \mathbf{V}_j, \mathbf{D}_j) \neq (\mathbf{A}_k, \mathbf{B}_k, \mathbf{U}_k, \mathbf{V}_k, \mathbf{D}_k)$,对所有 。
测试集 1(11 分,可见判定)
- 时间限制:20 秒。
- 。
- 。
- 。
测试集 2(24 分,隐藏判定)
- 时间限制:60 秒。
- 。
- 。
- 。