CF1838E.Count Supersequences

省选/NOI-

通过率:0%

时间限制:3.00s

内存限制:256MB

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

You are given an array aa of nn integers, where all elements aia_i lie in the range [1,k][1, k]. How many different arrays bb of mm integers, where all elements bib_i lie in the range [1,k][1, k], contain aa as a subsequence? Two arrays are considered different if they differ in at least one position.

A sequence xx is a subsequence of a sequence yy if xx can be obtained from yy by the deletion of several (possibly, zero or all) elements.

Since the answer may be large, print it modulo 109+710^9 + 7.

给你一个包含 nn 个整数的数组 aa,其中所有元素 aia_i 均在区间 [1,k][1, k] 内。问:有多少个长度为 mm 的不同数组 bb(其中每个元素 bib_i 均在区间 [1,k][1, k] 内),使得 aa 是 bb 的一个子序列?若两个数组在至少一个位置上的元素不同,则认为它们是不同的。

序列 xx 是序列 yy 的一个子序列,当且仅当 xx 可通过从 yy 中删除若干(可能为零个或全部)元素而得到。

由于答案可能很大,请输出其对 109+710^9 + 7 取模的结果。

输入格式

The first line of the input contains a single integer tt (1≤t≤1041 \le t \le 10^4) — the number of test cases. The description of the test cases follows.

The first line of each test case contains three integers nn, mm, kk (1≤n≤2⋅1051 \le n \le 2\cdot 10^5, n≤m≤109n \le m \le 10^9, 1≤k≤1091 \le k \le 10^9) — the size of aa, the size of bb, and the maximum value allowed in the arrays, respectively.

The next line of each test case contains nn integers a1,a2,…ana_1, a_2, \ldots a_n (1≤ai≤k1\le a_i \le k) — the elements of the array aa.

It is guaranteed that the sum of nn over all test cases does not exceed 2⋅1052\cdot 10^5.

输入的第一行包含一个整数 tt(1≤t≤1041 \le t \le 10^4),表示测试用例的数量。随后是各测试用例的描述。

每个测试用例的第一行包含三个整数 nn、mm、kk(1≤n≤2⋅1051 \le n \le 2\cdot 10^5,n≤m≤109n \le m \le 10^9,1≤k≤1091 \le k \le 10^9),分别表示数组 aa 的大小、数组 bb 的大小以及数组中允许的最大值。

每个测试用例的下一行包含 nn 个整数 a1,a2,…,ana_1, a_2, \ldots, a_n(1≤ai≤k1 \le a_i \le k),即数组 aa 的元素。

保证所有测试用例中 nn 的总和不超过 2⋅1052\cdot 10^5。

输出格式

For each test case, output a single integer — the number of suitable arrays bb, modulo 109+710^9+7.

对于每个测试用例,输出一个整数——满足条件的数组 bb 的个数,对 109+710^9+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=1k=1, there is only one array of size mm consisting of the integers [1,k][1, k]. This array ([1,1,…,1][1, 1, \ldots, 1]) contains the original array as a subsequence, so the answer is 1.

For the second example, the 99 arrays are [1,1,2,2][1, 1, 2, 2], [1,2,1,2][1, 2, 1, 2], [1,2,2,1][1, 2, 2, 1], [1,2,2,2][1, 2, 2, 2], [1,2,2,3][1, 2, 2, 3], [1,2,3,2][1, 2, 3, 2], [1,3,2,2][1, 3, 2, 2], [2,1,2,2][2, 1, 2, 2], [3,1,2,2][3, 1, 2, 2].

For the fourth example, since m=nm=n, the only array of size mm that contains aa as a subsequence is aa itself.

对于第一个例子,由于 k=1k=1,仅存在一个长度为 mm、由区间 [1,k][1, k] 内整数构成的数组。该数组(即 [1,1,…,1][1, 1, \ldots, 1])包含原数组作为其子序列,因此答案为 1。

对于第二个例子,这 99 个数组分别是:[1,1,2,2][1, 1, 2, 2]、[1,2,1,2][1, 2, 1, 2]、[1,2,2,1][1, 2, 2, 1]、[1,2,2,2][1, 2, 2, 2]、[1,2,2,3][1, 2, 2, 3]、[1,2,3,2][1, 2, 3, 2]、[1,3,2,2][1, 3, 2, 2]、[2,1,2,2][2, 1, 2, 2]、[3,1,2,2][3, 1, 2, 2]。

对于第四个例子,由于 m=nm=n,唯一一个以 aa 为子序列的长度为 mm 的数组就是 aa 本身。

输入解题思路,AI测评打分。不知道怎么写?

首页