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