#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}$