CF2242C Unstable Elements

题目描述

给定一个已排序的整数数组 $[a_1, a_2, \cdots, a_n]$。我们可以对该数组执行任意次数的以下操作类型: - 标记数组的第一个元素,以及所有不等于其左侧相邻元素的元素(即所有满足 $a_i \neq a_{i - 1}$ 的元素 $i$)。 - 然后删除所有标记元素或复制它们(即,用两个相同的元素替换每个标记元素)。 例如,考虑数组 $[\mathbf{1}, 1, 1, \mathbf{2}, \mathbf{4}, 4, \mathbf{5}]$(标记元素以粗体显示)。若删除所有标记元素,则得到 $[1, 1, 4]$;若复制这些标记元素,则得到 $[1, 1, 1, 1, 2, 2, 4, 4, 4, 5, 5]$。 若数组为空,则无法执行操作。每次操作后,所有元素均会被取消标记。 我们称一个整数数组 $b$ 为可达的,如果它可以通过若干次所述操作从数组 $a$ 获得。你的任务是统计长度为 $k$ 的可达数组的数量。

输入格式

第一行包含一个整数 $t$($1 \le t \le 10^4$),表示测试用例的数量。 每个测试用例由两行组成: - 第一行包含两个整数 $n$ 和 $k$($1 \le n, k \le 3 \cdot 10^5$); - 第二行包含 $n$ 个整数 $a_1, a_2, \dots, a_n$(满足 $1 \le a_1 \le a_2 \le \dots \le a_n \le n$)。注意该数组已排序。 - 所有测试用例的 $n$ 值总和不超过 $3 \times 10^5$。

输出格式

对于每个测试用例,输出一个整数,表示长度为 $k$ 的可访问数组 $b$ 的数量。可以证明,在问题的约束下,答案符合标准的 $32$ 位整数类型。

说明/提示

在第一个示例中, 可以执行以下操作序列:$[\mathbf{1}] \rightarrow [\mathbf{1}, 1] \rightarrow [\mathbf{1}, 1, 1] \rightarrow [\mathbf{1}, 1, 1, 1] \rightarrow [1, 1, 1, 1, 1]$。 在第二个例子中, 不可能得到长度为 $5$ 的数组。 在第三个示例中, 可以执行以下操作序列:$[\mathbf{1}, 1, 1] \rightarrow [\mathbf{1}, 1] \rightarrow [1]$。 在第五个例子中,可以得到数组 $[1, 1, 2, 2, 2, 2]$ 和 $[2, 2, 2, 2, 2, 2]$: - $[\mathbf{1}, 1, 1, \mathbf{2}, 2, 2, 2, 2] \rightarrow [1, 1, 2, 2, 2, 2]$; - $[\mathbf{1}, 1, 1, \mathbf{2}, 2, 2, 2, 2] \rightarrow [\mathbf{1}, 1, \mathbf{2}, 2, 2, 2] \rightarrow [\mathbf{1}, \mathbf{2}, 2, 2] \rightarrow [\mathbf{2}, 2] \rightarrow [\mathbf{2}, 2, 2] \rightarrow [\mathbf{2}, 2, 2, 2] \rightarrow [\mathbf{2}, 2, 2, 2, 2] \rightarrow [2, 2, 2, 2, 2, 2]$。 在第七个示例中,可以得到数组 $[1, 1, 1, 3, 3, 3, 3]$ 和 $[3, 3, 3, 3, 3, 3, 3]$。