CF1838E.Count Supersequences
省选/NOI-
通过率:0%
时间限制:3.00s
内存限制:256MB
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
You are given an array a of n integers, where all elements ai lie in the range [1,k]. How many different arrays b of m integers, where all elements bi lie in the range [1,k], contain a as a subsequence? Two arrays are considered different if they differ in at least one position.
A sequence x is a subsequence of a sequence y if x can be obtained from y by the deletion of several (possibly, zero or all) elements.
Since the answer may be large, print it modulo 109+7.
给你一个包含 n 个整数的数组 a,其中所有元素 ai 均在区间 [1,k] 内。问:有多少个长度为 m 的不同数组 b(其中每个元素 bi 均在区间 [1,k] 内),使得 a 是 b 的一个子序列?若两个数组在至少一个位置上的元素不同,则认为它们是不同的。
序列 x 是序列 y 的一个子序列,当且仅当 x 可通过从 y 中删除若干(可能为零个或全部)元素而得到。
由于答案可能很大,请输出其对 109+7 取模的结果。
输入格式
The first line of the input contains a single integer t (1≤t≤104) — the number of test cases. The description of the test cases follows.
The first line of each test case contains three integers n, m, k (1≤n≤2⋅105, n≤m≤109, 1≤k≤109) — the size of a, the size of b, and the maximum value allowed in the arrays, respectively.
The next line of each test case contains n integers a1,a2,…an (1≤ai≤k) — the elements of the array a.
It is guaranteed that the sum of n over all test cases does not exceed 2⋅105.
输入的第一行包含一个整数 t(1≤t≤104),表示测试用例的数量。随后是各测试用例的描述。
每个测试用例的第一行包含三个整数 n、m、k(1≤n≤2⋅105,n≤m≤109,1≤k≤109),分别表示数组 a 的大小、数组 b 的大小以及数组中允许的最大值。
每个测试用例的下一行包含 n 个整数 a1,a2,…,an(1≤ai≤k),即数组 a 的元素。
保证所有测试用例中 n 的总和不超过 2⋅105。
输出格式
For each test case, output a single integer — the number of suitable arrays b, modulo 109+7.
对于每个测试用例,输出一个整数——满足条件的数组 b 的个数,对 109+7 取模。
输入输出样例
输入#1
7 1 1000000 1 1 3 4 3 1 2 2 5 7 8 1 2 3 4 1 6 6 18 18 2 2 5 2 16 1 10 2 1 8 10 1234567 1 1 2 1 2 2 2 1 5 1000000000 1000000000 525785549 816356460 108064697 194447117 725595511
输出#1
1 9 1079 1 1023 906241579 232432822
说明/提示
For the first example, since k=1, there is only one array of size m consisting of the integers [1,k]. This array ([1,1,…,1]) contains the original array as a subsequence, so the answer is 1.
For the second example, the 9 arrays are [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].
For the fourth example, since m=n, the only array of size m that contains a as a subsequence is a itself.
对于第一个例子,由于 k=1,仅存在一个长度为 m、由区间 [1,k] 内整数构成的数组。该数组(即 [1,1,…,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,唯一一个以 a 为子序列的长度为 m 的数组就是 a 本身。
输入解题思路,AI测评打分。不知道怎么写?