201003: [AtCoder]ARC100 F - Colorful Sequences

Memory Limit:1024 MB Time Limit:2 S
Judge Style:Text Compare Creator:
Submit:0 Solved:0

Description

Score : $1100$ points

Problem Statement

You are given integers $N, K$, and an integer sequence $A$ of length $M$.

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

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

Constraints

  • $1 \leq N \leq 25000$
  • $1 \leq K \leq 400$
  • $1 \leq M \leq N$
  • $1 \leq A_i \leq K$
  • All values in input are integers.

Input

Input is given from Standard Input in the following format:

$N$ $K$ $M$
$A_1$ $A_2$ $...$ $A_M$

Output

For every colorful integer sequence of length $N$, count the number of the contiguous subsequences of that sequence which coincide with $A$, then print the sum of all the counts modulo $10^9+7$.


Sample Input 1

3 2 1
1

Sample Output 1

9

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


Sample Input 2

4 2 2
1 2

Sample Output 2

12

Sample Input 3

7 4 5
1 2 3 1 2

Sample Output 3

17

Sample Input 4

5 4 3
1 1 1

Sample Output 4

0

Sample Input 5

10 3 5
1 1 2 3 3

Sample Output 5

1458

Sample Input 6

25000 400 4
3 7 31 127

Sample Output 6

923966268

Sample Input 7

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

Sample Output 7

979180369

Input

题意翻译

## 题目描述 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$的高兴度

加入题单

算法标签: