AT_arc097_b [ABC097D] Equals
题目描述
有一个将 $1$ 到 $N$ 的整数重新排列得到的排列 $p_1, p_2, \ldots, p_N$。另外,给定 $M$ 对整数对,每对为 $(x_1, y_1), (x_2, y_2), \ldots, (x_M, y_M)$,其中 $1 \leq x_j, y_j \leq N$。AtCoDeer 君希望通过任意次数地对排列 $p$ 进行如下操作,使得满足 $p_i = i$ 的 $i$ 的数量($1 \leq i \leq N$)最大。
- 选择一个 $1 \leq j \leq M$,交换 $p_{x_j}$ 和 $p_{y_j}$。
请你求出通过若干次操作后,满足 $p_i = i$ 的 $i$ 的最大可能数量。
输入格式
输入通过标准输入给出,格式如下:
> $N$ $M$
> $p_1$ $p_2$ $\ldots$ $p_N$
> $x_1$ $y_1$
> $x_2$ $y_2$
> $\vdots$
> $x_M$ $y_M$
输出格式
输出通过操作后,满足 $p_i = i$ 的 $i$ 的最大可能数量。
说明/提示
## 限制条件
- $2 \leq N \leq 10^5$
- $1 \leq M \leq 10^5$
- $p$ 是 $1$ 到 $N$ 的一个排列
- $1 \leq x_j, y_j \leq N$
- $x_j \neq y_j$
- 如果 $i \neq j$,则 $\{x_i, y_i\} \neq \{x_j, y_j\}$
- 所有输入均为整数
## 样例解释 1
选择 $j=1$ 进行操作后,$p$ 变为 `1 3 5 4 2`,这是最优情况,因此答案为 $2$。
## 样例解释 2
例如,依次选择 $j=1$,$j=2$,$j=1$ 进行操作后,$p$ 变为 `1 2 3`,显然这是最优情况。注意,同一个 $j$ 可以被多次选择。
## 样例解释 4
无需进行任何操作。
由 ChatGPT 4.1 翻译