CF1833E.Round Dance

普及/提高-

通过率:0%

时间限制:2.00s

内存限制:256MB

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

nn people came to the festival and decided to dance a few round dances. There are at least 22 people in the round dance and each person has exactly two neighbors. If there are 22 people in the round dance then they have the same neighbor on each side.

You decided to find out exactly how many dances there were. But each participant of the holiday remembered exactly one neighbor. Your task is to determine what the minimum and maximum number of round dances could be.

For example, if there were 66 people at the holiday, and the numbers of the neighbors they remembered are equal [2,1,4,3,6,5][2, 1, 4, 3, 6, 5], then the minimum number of round dances is11:

  • 1−2−3−4−5−6−11 - 2 - 3 - 4 - 5 - 6 - 1

and the maximum is 33:

  • 1−2−11 - 2 - 1
  • 3−4−33 - 4 - 3
  • 5−6−55 - 6 - 5

有 nn 个人来到节日现场,并决定跳若干支圆圈舞。每支圆圈舞中至少有 22 人,且每个人恰好有两个邻居。如果某支圆圈舞中仅有 22 人,则这两人在左右两侧的邻居均为对方。

你希望准确知道一共跳了多少支圆圈舞。但节日的每位参与者仅记得自己的一位邻居。你的任务是确定可能的圆圈舞支数的最小值和最大值。

例如,若节日中共有 66 人,且他们各自所记住的邻居编号依次为 [2,1,4,3,6,5][2, 1, 4, 3, 6, 5],则圆圈舞支数的最小值为 11:

  • 1−2−3−4−5−6−11 - 2 - 3 - 4 - 5 - 6 - 1

而最大值为 33:

  • 1−2−11 - 2 - 1
  • 3−4−33 - 4 - 3
  • 5−6−55 - 6 - 5

输入格式

The first line contains a positive number tt (1≤t≤1041 \le t \le 10^4) — the number of test cases. The following is a description of the test cases.

The first line of the description of each test case contains a positive number nn (2≤n≤2⋅1052 \le n \le 2 \cdot 10^5) — the number of people at the holiday.

The second line of the description of each test case contains nn integers aia_i (1≤ai≤n,ai≠i1 \le a_i \le n, a_i \neq i) — the number of the neighbor that the iith person remembered.

It is guaranteed that the test cases are correct and corresponds to at least one division of people into round dances.

It is guaranteed that the sum of nn for all test cases does not exceed 2⋅1052 \cdot 10^5.

第一行包含一个正整数 tt(1≤t≤1041 \le t \le 10^4)—— 测试用例的数量。接下来是各测试用例的描述。

每个测试用例描述的第一行包含一个正整数 nn(2≤n≤2⋅1052 \le n \le 2 \cdot 10^5)—— 节日中的人数。

每个测试用例描述的第二行包含 nn 个整数 aia_i(1≤ai≤n,ai≠i1 \le a_i \le n, a_i \neq i)—— 第 ii 个人所记住的邻居的编号。

保证所有测试用例均合法,且至少对应一种将人们划分为若干圆圈舞(round dances)的方式。

保证所有测试用例的 nn 值之和不超过 2⋅1052 \cdot 10^5。

输出格式

For each test case, output two integers — the minimum and maximum number of round dances that could be.

对于每个测试用例,输出两个整数——可能的圆圈舞的最少数量和最多数量。

输入输出样例

  • 输入#1

    10
    6
    2 1 4 3 6 5
    6
    2 3 1 5 6 4
    9
    2 3 2 5 6 5 8 9 8
    2
    2 1
    4
    4 3 2 1
    5
    2 3 4 5 1
    6
    5 3 4 1 1 2
    5
    3 5 4 1 2
    6
    6 3 2 5 4 3
    6
    5 1 4 3 4 2

    输出#1

    1 3
    2 2
    1 3
    1 1
    1 2
    1 1
    1 1
    2 2
    1 2
    1 1

输入解题思路,AI测评打分。不知道怎么写?

首页