P16523 白驹过隙
题目背景
>三尸出鬼,亦生亦灭。以日为年,以此铭心。
题目描述
给出一个长为 $n$ 的序列 $p$,求有多少个本质不同的序列 $p'$ 满足其是 $p$ 的一个重排且恰好有 $m$ 个 $i$ 满足 $p'_i+1=p'_{i+1}$。
::::info[重排]{open}
序列 $a'$ 是长为 $n$ 的序列 $a$ 的一个重排当且仅当序列 $a'$ 满足以下两个条件:
- 序列 $a'$ 的长度为 $n$。
- 存在一个 $1\sim n$ 的排列 $p$ 使得 $a_i=a'_{p_i}$。
::::
::::info[本质不同]{open}
两个长为 $n$ 的序列 $a,b$ 本质不同当且仅当存在一个 $i$ 满足 $a_i\not=b_i$。
::::
输入格式
**本题有多组测试数据。**
第一行输入一个数 $T$,表示数据组数。
接下来输入 $2T$ 行,代表 $T$ 组数据。
每组数据第一行输入两个数 $n,m$,第二行输入 $n$ 个数,表示序列 $p$。
输出格式
输出一行一个数,表示答案。对 $998244353$ 取模。
说明/提示
**请对程序常数因子给予充分的信任。**
**本题采用捆绑测试。**
| Subtask | $n,m\le$ | 特殊性质 | 分数 |
|:-:|:-:|:-:|:-:|
| 1 | $8$ | 无 | $5$ |
| 2 | $16$ | $m=0$ | $15$ |
| 3 | $100$ | 无 | $20$ |
| 4 | $500$ | $p_i=i$ | $10$ |
| 5 | ^ | 存在一个 $k$ 满足 $k\mid n$ 且 $p_i=\left\lceil\frac{i}{k}\right\rceil$ | $15$ |
| 6 | ^ | 无 | $35$ |
对于 $100\%$ 的数据,保证 $1\le p_i\le n$,$0\le m