AT_arc082_b [ABC072D] Derangement
题目描述
给定一个由 $1,2,\ldots,N$ 组成的排列 $p_1,p_2,\ldots,p_N$。你可以进行若干次(可以为 $0$ 次)如下操作:
操作:选择排列中**相邻的**两个数并交换它们。
请通过若干次操作,使得对于任意的 $1\leq i\leq N$,都满足 $p_i\neq i$。请你求出所需操作的最小次数。
输入格式
输入通过标准输入按以下格式给出:
> $N$ $p_1$ $p_2$ … $p_N$
输出格式
输出所需操作的最小次数。
说明/提示
## 限制条件
- $2\leq N\leq 10^5$
- $p_1,p_2,\ldots,p_N$ 是 $1,2,\ldots,N$ 的一个排列。
## 样例说明 1
将 $1$ 与 $4$ 交换,然后将 $1$ 与 $3$ 交换,排列变为 $4,3,1,5,2$,此时满足题目要求。这是所需的最少交换次数,因此答案为 $2$。
## 样例说明 2
只要交换 $1$ 与 $2$ 即可满足条件。
## 样例说明 3
初始排列已经满足条件。
由 ChatGPT 5 翻译