CF1838E Count Supersequences

题目描述

给定一个长度为 $n$ 的整数数组 $a$,其中所有元素 $a_i$ 都在区间 $[1, k]$ 内。问有多少个长度为 $m$ 的不同整数数组 $b$,其中所有元素 $b_i$ 也都在区间 $[1, k]$ 内,并且 $a$ 是 $b$ 的一个子序列?如果两个数组在至少一个位置不同,则认为它们是不同的。 如果一个序列 $x$ 可以通过从序列 $y$ 中删除若干(可能为零或全部)元素得到,则称 $x$ 是 $y$ 的一个子序列。 由于答案可能很大,请输出答案对 $10^9+7$ 取模后的结果。

输入格式

输入的第一行包含一个整数 $t$($1 \le t \le 10^4$),表示测试用例的数量。接下来是每个测试用例的描述。 每个测试用例的第一行包含三个整数 $n$、$m$、$k$($1 \le n \le 2\cdot 10^5$,$n \le m \le 10^9$,$1 \le k \le 10^9$),分别表示数组 $a$ 的长度、数组 $b$ 的长度,以及数组中允许的最大值。 接下来一行包含 $n$ 个整数 $a_1, a_2, \ldots, a_n$($1 \le a_i \le k$),表示数组 $a$ 的元素。 保证所有测试用例中 $n$ 的总和不超过 $2\cdot 10^5$。

输出格式

对于每个测试用例,输出一个整数,表示满足条件的数组 $b$ 的数量,对 $10^9+7$ 取模。

说明/提示

对于第一个样例,由于 $k=1$,只有一个长度为 $m$ 的数组,即 $[1, 1, \ldots, 1]$。这个数组包含原数组作为子序列,因此答案为 1。 对于第二个样例,满足条件的 $9$ 个数组分别为 $[1, 1, 2, 2]$,$[1, 2, 1, 2]$,$[1, 2, 2, 1]$,$[1, 2, 2, 2]$,$[1, 2, 2, 3]$,$[1, 2, 3, 2]$,$[1, 3, 2, 2]$,$[2, 1, 2, 2]$,$[3, 1, 2, 2]$。 对于第四个样例,由于 $m=n$,唯一一个长度为 $m$ 的数组包含 $a$ 作为子序列的就是 $a$ 本身。 由 ChatGPT 4.1 翻译