CF2129D Permutation Blackhole

题目描述

对于一个长度为 $n$ 的排列 $p_1, p_2, \ldots, p_n$,可以通过如下的染色过程得到对应的染色序列 $s$: - 初始时,有 $n$ 个白色格子,从左到右编号为 $1$ 到 $n$。在第 $0$ 秒时,每个格子的分数均为 $0$。 - 在第 $i$ 秒($1 \le i \le n$): - 如果 $i > 1$,找到距离格子 $p_i$ 最近的黑色格子,并将该格子的分数加 $1$。如果有多个最近的黑色格子,选择编号最小的那个。格子 $y$ 被称为格子 $x$ 最近的黑色格子,当且仅当格子 $y$ 是黑色的,且不存在黑色格子 $z$ 满足 $|x-z|

输入格式

每个测试点包含多组测试数据。第一行包含一个整数 $t$($1 \le t \le 10^3$),表示测试数据的组数。 对于每组测试数据,第一行包含一个整数 $n$($2 \leq n \leq 100$)。 第二行包含 $n$ 个整数 $s_1, s_2, \ldots, s_n$($-1 \leq s_i \leq n-1$)。其中 $s_i=-1$ 表示 $s_i$ 尚未确定,$s_i \neq -1$ 表示 $s_i$ 已经确定。 保证所有测试数据中 $n^2$ 的和不超过 $10^4$。

输出格式

对于每组测试数据,输出能够产生该染色序列 $s$ 的不同排列 $p_1, p_2, \ldots, p_n$ 的总数,对 $998\,244\,353$ 取模。

说明/提示

在第一个测试点中,$p=[3,1,2]$ 和 $p=[3,2,1]$ 都可以产生染色序列 $s=[-1,-1,1]$。 对于 $p=[3,1,2]$,染色过程如下图所示。 ![](https://cdn.luogu.com.cn/upload/vjudge_pic/CF2129D/022aefcacbea3595de9f889d1bca0dbf59cc5e17.png)![](https://cdn.luogu.com.cn/upload/vjudge_pic/CF2129D/279519edbbfd510cf0e6f20008881b2f63e471e6.png)![](https://cdn.luogu.com.cn/upload/vjudge_pic/CF2129D/1dae7117c3f13b48c2b0670fa79993b6b0f449ad.png)![](https://cdn.luogu.com.cn/upload/vjudge_pic/CF2129D/2e8dd4d05fcc92cd2a3497a42a1cbf9762f76b30.png) 分别为 $p=[3,1,2]$ 时第 $0$ 秒、第 $1$ 秒、第 $2$ 秒和第 $3$ 秒的格子状态。 对于 $p=[3,2,1]$,染色过程如下图所示。 ![](https://cdn.luogu.com.cn/upload/vjudge_pic/CF2129D/022aefcacbea3595de9f889d1bca0dbf59cc5e17.png)![](https://cdn.luogu.com.cn/upload/vjudge_pic/CF2129D/279519edbbfd510cf0e6f20008881b2f63e471e6.png)![](https://cdn.luogu.com.cn/upload/vjudge_pic/CF2129D/b1e2364c16ab285fa9c973c2bdd89c28ec014aef.png)![](https://cdn.luogu.com.cn/upload/vjudge_pic/CF2129D/3d85d5610273aa8da29be8394d77bb2e1dfc3d34.png) 分别为 $p=[3,2,1]$ 时第 $0$ 秒、第 $1$ 秒、第 $2$ 秒和第 $3$ 秒的格子状态。 由 ChatGPT 4.1 翻译