题目背景
三尸出鬼,亦生亦灭。以日为年,以此铭心。
题目描述
给出一个长为 n 的序列 p,求有多少个本质不同的序列 p′ 满足其是 p 的一个重排且恰好有 m 个 i 满足 pi′+1=pi+1′。
::::info[重排]{open}
序列 a′ 是长为 n 的序列 a 的一个重排当且仅当序列 a′ 满足以下两个条件:
- 序列 a′ 的长度为 n。
- 存在一个 1∼n 的排列 p 使得 ai=api′。
::::
::::info[本质不同]{open}
两个长为 n 的序列 a,b 本质不同当且仅当存在一个 i 满足 ai=bi。
::::
输入格式
本题有多组测试数据。
第一行输入一个数 T,表示数据组数。
接下来输入 2T 行,代表 T 组数据。
每组数据第一行输入两个数 n,m,第二行输入 n 个数,表示序列 p。
输出格式
输出一行一个数,表示答案。对 998244353 取模。
2
5 0
1 1 2 3 3
4 1
1 1 1 2
12
3
提示
请对程序常数因子给予充分的信任。
本题采用捆绑测试。
| Subtask |
n,m≤ |
特殊性质 |
分数 |
| 1 |
8 |
无 |
5 |
| 2 |
16 |
m=0 |
15 |
| 3 |
100 |
无 |
20 |
| 4 |
500 |
pi=i |
10 |
| 5 |
^ |
存在一个 k 满足 k∣n 且 pi=⌈ki⌉ |
15 |
| 6 |
无 |
35 |
对于 100% 的数据,保证 1≤pi≤n,0≤m<n≤500,1≤T≤5,且 pi,n,m 均为正整数。