QOJ.ac

QOJ

時間限制: 10 s 記憶體限制: 1024 MB 總分: 45

#5993. 最好的朋友

统计

你是 Little Coders 幼儿园的一名老师。班上有 $N$ 个孩子,每个孩子都有一个从 $1$ 到 $N$ 的不同学号。班上的每个孩子都有一个唯一的“永远的好朋友”(BFF),你知道每个孩子的 BFF 是谁。BFF 关系不一定是相互的——也就是说,B 是 A 的 BFF 并不意味着 A 是 B 的 BFF。

你明天的课程计划包括一项活动,参与者必须围坐成一个圆圈。你希望通过构建一个尽可能大的圆圈,使得圆圈中的每个孩子都坐在其 BFF 的旁边(左侧或右侧),从而使活动尽可能成功。不在圆圈中的孩子将观看活动而不参与。

圆圈中最多能有多少个孩子?

输入格式

输入的第一行包含测试用例的数量 $T$。接下来是 $T$ 个测试用例。每个测试用例包含两行。第一行包含一个整数 $N$,表示班级中孩子的总数。第二行包含 $N$ 个整数 $F_1, F_2, \dots, F_N$,其中 $F_i$ 是学号为 $i$ 的孩子的 BFF 的学号。

输出格式

对于每个测试用例,输出一行 "Case #x: y",其中 $x$ 是测试用例编号(从 $1$ 开始),$y$ 是可以围成圆圈且满足每个孩子都坐在其 BFF 旁边的最大孩子人数。

数据范围

$1 \le T \le 100$。 $1 \le F_i \le N$,对于所有 $i$。 $F_i \neq i$,对于所有 $i$。(没有孩子是自己的 BFF。)

小型数据集(测试集 1 - 可见) $3 \le N \le 10$。

大型数据集(测试集 2 - 隐藏) $3 \le N \le 1000$。

样例

输入 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

输出 1

Case #1: 4
Case #2: 3
Case #3: 3
Case #4: 6

说明

在样例 #4 中,最大的圆圈按以下顺序排列孩子:7 9 3 10 4 1。(该圆圈的任何镜像或旋转也同样适用。)注意,学号为 1 的孩子与学号为 7 的孩子相邻,这是符合要求的,因为该列表代表一个圆圈。

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.