编程题
### 问题描述 这里有 $n$ 个元素,和 $q$ 次操作。元素从 $1$ 到 $n$ 进行编号。 首先会告诉你一个数组 $a$ , $a_i$ 代表编号为 $i$ 的元素和 $a_i$ 属于一个集合。如果 $a_i$ 为 $0$ ,则说明它和自己属于同一个集合。接下来会有 $q$ 次操作,每次操作会给出区间 $[l,r]$ (每次操作的区间可能会和之前的重叠),将从编号 $l$ 到 $r$ 所在的集合合并为一个集合。 在进行完 $q$ 次操作后,输出有多少个集合。 ### 输入格式 第一行输入人数 $n$ 和操作数量 $q$ 。 第二行输入长度为 $n$ 的数组 $a$ 。 接下来 $q$ 行,每行输入一个区间 $[l, r]$ 。 ### 输出格式 输出你计算出集合的数量。 ### 输入样例 ``` 5 2 0 0 0 2 3 1 2 2 3 ``` ### 输出样例 ``` 1 ``` ### 说明 数据范围保证: $2 \le n \le 10^6$ , $1 \le q \le 10^6$ , $1 \le x_i < n$ , $1 \le l < r \le n$ 。
查看答案
赣ICP备20007335号-2