CF1969A.Two Friends
入门
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
Monocarp 想要举办一个聚会。他有 n 个朋友,并且他想要让他们之中的至少 2 人来参加聚会。
第 i 个朋友的最好的朋友是 pi。每一个 pi 都是不一样的,并且对于所有的 i∈[1,n],pi=i。
Monocarp 可以给朋友们发送邀请。如果第 i 个朋友和第 pi 个朋友都收到了邀请(注意第 pi 个朋友不一定真的要去参加聚会),那么第 i 个朋友会去参加聚会。每份邀请都会发送给其中一位朋友。
举个例子,如果 p=[3,1,2,5,4],并且 Monocarp 给朋友 [1,2,4,5] 发邀请,那么朋友 [2,4,5] 会去参加聚会。朋友 1 不会去参加聚会因为他最好的朋友没有收到邀请;朋友 3 不会去参加聚会因为他没有受到邀请。
求 Monocarp 最少需要发出的邀请数以让至少 2 个朋友来参加聚会。
输入格式
第一行包含一个整数 t(1≤t≤5000),表示数据组数。
每一组数据包含两行:
- 第一行包含一个整数 n(2≤n≤50),表示朋友数;
- 第二行包含 n 个整数 p1,p2,…,pn(1≤pi≤n;pi=i;所有的 pi 都不一样)。
输出格式
输出一个整数,为 Monocarp 最少需要发出的邀请数。
样例解释
在第一组数据中,Monocarp 可以给朋友 4 和 5 发邀请。他们两人都会来参加聚会因为他们是对方最好的朋友,并且他们都收到了邀请。
在第二组数据中,例如,Monocarp 可以给朋友 1,2 和 3 发邀请。然后朋友 1 和 2 会出席:朋友 1 和他最好的朋友 2 都收到了邀请,朋友 2 和他最好的朋友 3 都收到了邀请。朋友 3 不会出席因为他最好的朋友 4 没有收到邀请。只给少于 3 个朋友发邀请函还至少有 2 个朋友来参加聚会是不可能的。
在第三组数据中,Monocarp 可以给朋友 1 和 2 都发邀请,然后他们两个都会出席。
输入输出样例
输入#1
3 5 3 1 2 5 4 4 2 3 4 1 2 2 1
输出#1
2 3 2
输入解题思路,AI测评打分。不知道怎么写?