#P13191. [GCJ 2016 #1A] BFFs
[GCJ 2016 #1A] BFFs
Description
你是一所新开的 Little Coders 幼儿园的老师。你的班级里有 个孩子,每个孩子的学号从 到 ,互不相同。班里的每个孩子都有一个唯一的“永远的最好的朋友”(BFF),你知道每个孩子的 BFF 是谁。BFF 关系不一定是互相的——也就是说,B 是 A 的 BFF,并不意味着 A 一定是 B 的 BFF。
你的明天的教学计划中有一个活动,要求参与的孩子围成一个圆圈坐下。你希望活动尽可能成功,因此想让尽可能多的孩子围成一个圈,并且要求圈中的每个孩子都必须与自己的 BFF 紧邻(可以在左边,也可以在右边)。没有进入圈子的孩子则只能在一旁观摩。
请问,最多可以有多少个孩子围成满足条件的圆圈?
Input Format
输入的第一行包含一个整数 ,表示测试用例数量。接下来有 组测试用例。每组测试用例包含两行。第一行为一个整数 ,表示班级中孩子的总数。第二行为 个整数 $\mathbf{F}_1, \mathbf{F}_2, \ldots, \mathbf{F}_\mathbf{N}$,其中 表示学号为 的孩子的 BFF 的学号。
Output Format
对于每组测试用例,输出一行 Case #x: y,其中 表示测试用例编号(从 1 开始), 表示可以围成满足条件的最大孩子数。
4
4
2 3 4 1
4
3 3 4 1
4
3 3 4 3
10
7 8 10 10 9 2 9 6 3 3
Case #1: 4
Case #2: 3
Case #3: 3
Case #4: 6
Hint
样例解释
在样例第 4 组中,最大可能的圆圈可以让如下孩子按如下顺序围成一圈:7 9 3 10 4 1。(该圆圈的任意旋转或反转也都符合条件。)注意,学号为 1 的孩子与学号为 7 的孩子相邻,符合题目要求,因为该列表表示一个圆圈。
限制条件
- 。
- 对所有 ,。
- 对所有 ,(没有孩子把自己当作 BFF)。
小数据集(16 分,测试集 1 - 可见)
- 。
大数据集(29 分,测试集 2 - 隐藏)
- 。
翻译由 GPT4.1 完成。
京公网安备 11011102002149号