F - Colorful Sequences Editorial /

Time Limit: 2 sec / Memory Limit: 1024 MiB

配点 : 11001100

問題文

整数 NNKK、そして長さ MM の整数列 AA が与えられます。

各要素が 11 以上 KK 以下の整数である整数列がカラフルであるとは、 その整数列の長さ KK の連続する部分列であって、11 から KK までの整数を 11 個ずつ含むものが存在することを意味します。

すべての長さ NN のカラフルな整数列について、その連続する部分列であって AA に一致するものの個数を数えて、その総和を求めてください。 ただし、答えは非常に大きくなることがあるので、109+710^9+7 で割った余りを求めてください。

制約

  • 1N250001 \leq N \leq 25000
  • 1K4001 \leq K \leq 400
  • 1MN1 \leq M \leq N
  • 1AiK1 \leq A_i \leq K
  • 入力はすべて整数である。

入力

入力は以下の形式で標準入力から与えられる。

NN KK MM
A1A_1 A2A_2 ...... AMA_M

出力

すべての長さ NN のカラフルな整数列について、その連続する部分列であって AA に一致するものの個数を数えて、 その総和を 109+710^9+7 で割った余りを出力せよ。


入力例 1Copy

Copy
3 2 1
1

出力例 1Copy

Copy
9

長さ 33 のカラフルな整数列は、(1,1,2)(1,1,2), (1,2,1)(1,2,1), (1,2,2)(1,2,2), (2,1,1)(2,1,1), (2,1,2)(2,1,2), (2,2,1)(2,2,1)66 個です。 これらの整数列の、連続する部分列であって A=(1)A=(1) に一致するものの個数は、それぞれ 22, 22, 11, 22, 11, 11 個です。 よって、これらの合計である 99 が答えになります。


入力例 2Copy

Copy
4 2 2
1 2

出力例 2Copy

Copy
12

入力例 3Copy

Copy
7 4 5
1 2 3 1 2

出力例 3Copy

Copy
17

入力例 4Copy

Copy
5 4 3
1 1 1

出力例 4Copy

Copy
0

入力例 5Copy

Copy
10 3 5
1 1 2 3 3

出力例 5Copy

Copy
1458

入力例 6Copy

Copy
25000 400 4
3 7 31 127

出力例 6Copy

Copy
923966268

入力例 7Copy

Copy
9954 310 12
267 193 278 294 6 63 86 166 157 193 168 43

出力例 7Copy

Copy
979180369

Score : 11001100 points

Problem Statement

You are given integers N,KN, K, and an integer sequence AA of length MM.

An integer sequence where each element is between 11 and KK (inclusive) is said to be colorful when there exists a contiguous subsequence of length KK of the sequence that contains one occurrence of each integer between 11 and KK (inclusive).

For every colorful integer sequence of length NN, count the number of the contiguous subsequences of that sequence which coincide with AA, then find the sum of all the counts. Here, the answer can be extremely large, so find the sum modulo 109+710^9+7.

Constraints

  • 1N250001 \leq N \leq 25000
  • 1K4001 \leq K \leq 400
  • 1MN1 \leq M \leq N
  • 1AiK1 \leq A_i \leq K
  • All values in input are integers.

Input

Input is given from Standard Input in the following format:

NN KK MM
A1A_1 A2A_2 ...... AMA_M

Output

For every colorful integer sequence of length NN, count the number of the contiguous subsequences of that sequence which coincide with AA, then print the sum of all the counts modulo 109+710^9+7.


Sample Input 1Copy

Copy
3 2 1
1

Sample Output 1Copy

Copy
9

There are six colorful sequences of length 33: (1,1,2)(1,1,2), (1,2,1)(1,2,1), (1,2,2)(1,2,2), (2,1,1)(2,1,1), (2,1,2)(2,1,2) and (2,2,1)(2,2,1). The numbers of the contiguous subsequences of these sequences that coincide with A=(1)A=(1) are 22, 22, 11, 22, 11 and 11, respectively. Thus, the answer is their sum, 99.


Sample Input 2Copy

Copy
4 2 2
1 2

Sample Output 2Copy

Copy
12

Sample Input 3Copy

Copy
7 4 5
1 2 3 1 2

Sample Output 3Copy

Copy
17

Sample Input 4Copy

Copy
5 4 3
1 1 1

Sample Output 4Copy

Copy
0

Sample Input 5Copy

Copy
10 3 5
1 1 2 3 3

Sample Output 5Copy

Copy
1458

Sample Input 6Copy

Copy
25000 400 4
3 7 31 127

Sample Output 6Copy

Copy
923966268

Sample Input 7Copy

Copy
9954 310 12
267 193 278 294 6 63 86 166 157 193 168 43

Sample Output 7Copy

Copy
979180369


2025-06-09 (Mon)
01:15:14 +00:00