A37951.座位问题

入门

官方

通过率:0%

时间限制:1.00s

内存限制:128MB

题目描述

有一个班级共有 nn 位同学,他们的学号分别为 1,2,3,,n1, 2, 3, \dots, n,并且每位同学有一个座位号 a1,a2,,ana_1, a_2, \dots, a_n,座位号是学生的初始座位。一个学生"快乐"当且仅当他的座位号 aia_i 和他们的学号 ii 不相等。现在,你可以任意交换两位同学的座位,为了让所有学生都"快乐",你需要使每位学生的座位号与学号不同。请问,最少需要进行多少次交换才能完成这个目标?

数据范围\large{数据范围}

  • 1T1031 \leq T \leq 10^3
  • 2n1032 \leq n \leq 10^3
  • 1ain1 \leq a_i \leq n,数据保证 aa 数组是 nn 的全排列
  • nn 的全排列:1,2,3,,n1, 2, 3, \dots, n中每个值都只出现一次。

输入格式

第一行输入一个整数 TT,代表测试用例个数。

对于每一个测试用例:

第一行输入一个整数 nn

第二行输入 nn 个数,代表 aia_i

输出格式

对于每一个测试用例: 输出一个答案占一行。

输入输出样例

  • 输入#1

    2
    2
    1 2
    2
    2 1

    输出#1

    1
    0
    

说明/提示

测试用例解释:

对于第一个测试用例:只需要 11 次操作,交换第 11 个学生和第 22 个学生的座位即可, 所以答案是 11

对于第二个测试用例:不需要进行任何操作,因为对于班里面所有学生的学号和座位号都不相等, 所以答案是 00

首页