CF2217B Flip the Bit (Easy Version)
题目描述
这是该问题的简单版本。不同之处在于本题中只有一个特殊下标($k=1$)。只有在你解决了所有版本的问题后,你才能进行 hack。
给定一个长度为 $n$ 的二进制数组 $a$ 以及 $k$ 个特殊下标 $p_1, p_2, \ldots, p_k$($1 \le p_i \le n$)。已知所有特殊下标处的元素值相同,即 $a_{p_1} = a_{p_2} = \ldots = a_{p_k}$。
每次操作,你可以选择一个区间 $[l, r]$($1 \le l \le r \le n$),使得该区间包含至少一个特殊下标(即 $l \le p_i \le r$),并将区间 $[l, r]$ 中所有的二进制位 $a_j$($l \le j \le r$) 翻转。翻转操作将 $0$ 变为 $1$,$1$ 变为 $0$。
设 $x$ 表示在任何操作之前所有特殊下标处的元素值。请你计算最少需要多少次操作,才能将整个数组中的所有元素都变为 $x$。
输入格式
每个测试用例包含多个测试样例。
第一行包含测试样例的数量 $t$($1 \le t \le 10^4$)。
接下来是每个测试样例的描述:
每个测试样例的第一行包含两个整数 $n$ 和 $k$($1 \le n \le 2 \cdot 10^5$,$k=1$)——数组的长度与特殊下标的个数。
第二行包含 $n$ 个整数 $a_1, a_2, \ldots, a_n$($0 \le a_i \le 1$)——数组的元素。
第三行包含 $k$ 个整数 $p_1, p_2, \ldots, p_k$($1 \le p_1 < p_2 < \ldots < p_k \le n$)——特殊下标。已保证这些下标对应的元素值都相同。
保证所有测试样例中 $n$ 的总和不超过 $2 \cdot 10^5$。
输出格式
对于每个测试样例,输出一个整数,表示完成要求所需的最小操作次数。
说明/提示
对于第一个测试样例,你可以选择区间 $[1, 3]$ 翻转所有比特,得到 $[1, 0, 1]$。然后选择区间 $[2, 2]$ 翻转第二个比特,得到 $[1, 1, 1]$。
对于第二个测试样例,所有比特已经与特殊下标处的值相同,无需任何操作。
由 ChatGPT 5 翻译