CF1969A.Two Friends

传统题 时间 2000 ms 内存 256 MiB 3 尝试 1 已通过 1 标签

Two Friends

题目描述

Monocarp 想要举办一个聚会。他有 nn 个朋友,并且他想要让他们之中的至少 22 人来参加聚会。

ii 个朋友的最好的朋友是 pip_i。每一个 pip_i 都是不一样的,并且对于所有的 i[1,n]i \in [1, n]piip_i \neq i

Monocarp 可以给朋友们发送邀请。如果第 ii 个朋友和第 pip_i 个朋友都收到了邀请(注意第 pip_i 个朋友不一定真的要去参加聚会),那么第 ii 个朋友会去参加聚会。每份邀请都会发送给其中一位朋友。

举个例子,如果 p=[3,1,2,5,4]p = [3,1,2,5,4],并且 Monocarp 给朋友 [1,2,4,5][1, 2, 4, 5] 发邀请,那么朋友 [2,4,5][2, 4,5] 会去参加聚会。朋友 11 不会去参加聚会因为他最好的朋友没有收到邀请;朋友 33 不会去参加聚会因为他没有受到邀请。

求 Monocarp 最少需要发出的邀请数以让至少 22 个朋友来参加聚会。

输入格式

第一行包含一个整数 tt1t50001 \le t \le 5000),表示数据组数。

每一组数据包含两行:

  • 第一行包含一个整数 nn2n502\le n \le 50),表示朋友数;
  • 第二行包含 nn 个整数 p1,p2,,pnp_1, p_2, \dotsc, p_n1pin1 \le p_i \le npiip_i \neq i;所有的 pip_i 都不一样)。

输出格式

输出一个整数,为 Monocarp 最少需要发出的邀请数。

样例解释

在第一组数据中,Monocarp 可以给朋友 4455 发邀请。他们两人都会来参加聚会因为他们是对方最好的朋友,并且他们都收到了邀请。

在第二组数据中,例如,Monocarp 可以给朋友 1,21,233 发邀请。然后朋友 1122 会出席:朋友 11 和他最好的朋友 22 都收到了邀请,朋友 22 和他最好的朋友 33 都收到了邀请。朋友 33 不会出席因为他最好的朋友 44 没有收到邀请。只给少于 33 个朋友发邀请函还至少有 22 个朋友来参加聚会是不可能的。

在第三组数据中,Monocarp 可以给朋友 1122 都发邀请,然后他们两个都会出席。

样例

3
5
3 1 2 5 4
4
2 3 4 1
2
2 1
2
3
2

在线编程 IDE

建议全屏模式获得最佳体验