[ARC100F] Colorful Sequences

题意翻译

## 题目描述 Lin要过生日了,Puro想送他一个$N$层的蛋糕作为礼物,但是Puro正在纠结奶油的颜色 Puro有$K$种不同的奶油,每一层蛋糕都能涂上其中一种,但是要让他们俩同时满意是个问题,具体来说是这样的: - 如果存在连续$K$层蛋糕,包含了所有$K$种奶油,那么这个蛋糕就是Puro最喜欢的“彩虹蛋糕” - 同时,对任意连续$M$层蛋糕,如果它们所使用的奶油顺序刚好满足一个长度为$M$的序列$A$,那么Lin就会有$1$的高兴度(两个出现的$A$可以部分重叠) 现在问Puro能够做出的所有“彩虹蛋糕”的高兴度之和为多少? 答案对$(10^9+7)$取模 ~~如果你答对了,Dr.K将送你一本字帖~~ ## 说明/提示 $\begin{array}{l}1\le N\le 25000\\1\le K\le 400\\1\le M\le N\\1\le A_i\le K\end{array}$ **样例1解释** 有$(1,1,2),(1,2,1),(1,2,2),(2,1,1),(2,1,2),(2,2,1)$总共$6$种“彩虹蛋糕”,它们分别能产生$2,2,1,2,1,1$的高兴度,因此答案为$2+2+1+2+1+1=9$的高兴度

题目描述

[problemUrl]: https://atcoder.jp/contests/arc100/tasks/arc100_d 整数 $ N $ と $ K $、そして長さ $ M $ の整数列 $ A $ が与えられます。 各要素が $ 1 $ 以上 $ K $ 以下の整数である整数列がカラフルであるとは、 その整数列の長さ $ K $ の連続する部分列であって、$ 1 $ から $ K $ までの整数を $ 1 $ 個ずつ含むものが存在することを意味します。 すべての長さ $ N $ のカラフルな整数列について、その連続する部分列であって $ A $ に一致するものの個数を数えて、その総和を求めてください。 ただし、答えは非常に大きくなることがあるので、$ 10^9+7 $ で割った余りを求めてください。

输入输出格式

输入格式


入力は以下の形式で標準入力から与えられる。 > $ N $ $ K $ $ M $ $ A_1 $ $ A_2 $ $ ... $ $ A_M $

输出格式


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

输入输出样例

输入样例 #1

3 2 1
1

输出样例 #1

9

输入样例 #2

4 2 2
1 2

输出样例 #2

12

输入样例 #3

7 4 5
1 2 3 1 2

输出样例 #3

17

输入样例 #4

5 4 3
1 1 1

输出样例 #4

0

输入样例 #5

10 3 5
1 1 2 3 3

输出样例 #5

1458

输入样例 #6

25000 400 4
3 7 31 127

输出样例 #6

923966268

输入样例 #7

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

输出样例 #7

979180369

说明

### 制約 - $ 1\ \leq\ N\ \leq\ 25000 $ - $ 1\ \leq\ K\ \leq\ 400 $ - $ 1\ \leq\ M\ \leq\ N $ - $ 1\ \leq\ A_i\ \leq\ K $ - 入力はすべて整数である。 ### Sample Explanation 1 長さ $ 3 $ のカラフルな整数列は、$ (1,1,2) $, $ (1,2,1) $, $ (1,2,2) $, $ (2,1,1) $, $ (2,1,2) $, $ (2,2,1) $ の $ 6 $ 個です。 これらの整数列の、連続する部分列であって $ A=(1) $ に一致するものの個数は、それぞれ $ 2 $, $ 2 $, $ 1 $, $ 2 $, $ 1 $, $ 1 $ 個です。 よって、これらの合計である $ 9 $ が答えになります。