#P1095. 【UNR #10】分披萨

【UNR #10】分披萨

Spica 要制作一整条长条形的特制披萨,并将其均匀地划分成了 $n$ 个切片,从左到右依次编号为 $1$ 到 $n$。

Spica 有 $m$ 种可选的配料,分别编号为 $1$ 到 $m$。目前,有些切片的配料已经提前确定,而有些还未确定。这可以用一个长度为 $n$ 的序列 $a$ 来表示:若 $a_i \neq 0$,表示第 $i$ 个切片已确定使用第 $a_i$ 种配料;若 $a_i = 0$,表示该切片的配料尚未决定,Spica 可以从 $1$ 到 $m$ 中任意选择一种配料填补。

做完披萨后,有 $k$ 个客人来家里做客。Spica 需要将整个披萨划分为 $k$ 个连续的区间分别分给他们。每个客人的满意度定义为其分到的区间内不同配料的种类数

Spica 希望所有客人的满意度都完全相同。给定 $n,m,k$ 和初始序列 $a$,你需要帮她求出在所有可能的完整配料方案中,有多少种方案满足“存在至少一种划分方式,使得所有客人的满意度相同”。由于答案可能很大,请输出方案数对 $998244353$ 取模的结果。

输入格式

第一行输入三个正整数 $n,m,k$。

第二行输入 $n$ 个自然数,依次为 $a_1,\dots,a_n$。

输出格式

输出一行一个整数表示答案。

5 4 2
0 1 0 0 2
49

下面是几种可能的填法:

  • 填成 $1,1,2,2,2$:一种划分方案为 $[1,2]$ 和 $[3,5]$。第一位客人的满意度为 $1$(配料为 $\{1\}$),第二位客人的满意度为 $1$(配料为 $\{2\}$),所有客人满意度相同。
  • 填成 $3,1,3,1,2$:一种划分方案为 $[1,3]$ 和 $[4,5]$。第一位客人的满意度为 $2$(配料为 $\{1,3\}$),第二位客人的满意度为 $2$(配料为 $\{1,2\}$),所有客人满意度相同。
  • 填成 $3,1,4,3,2$:无论如何划分,都无法使两位客人的满意度相同。

样例二-七

见附件下载。

数据范围

子任务编号 $n \leq$ $m \leq$ 特殊性质 分值
$1$ $6$ $8$ $7$
$2$ $10$ $50$ $11$
$3$ $200$ $300$ $k=2$ $12$
$4$ $50$ $60$ $a_i=0$ $16$
$5$ $50$ $60$ $18$
$6$ $100$ $10^8$ $a_i=0$ $11$
$7$ $100$ $10^8$ $12$
$8$ $200$ $10^8$ $13$

$1\leq k\leq n \leq 200$,$0\leq a_i \leq m\leq 10^8$,$m\geq 1$。

时间限制:$\texttt{4s}$

空间限制:$\texttt{2GB}$