#P16523. 白驹过隙

    ID: 15744 Type: RemoteJudge 1000ms 128MiB Tried: 0 Accepted: 0 Difficulty: 7 Uploaded By: Tags>动态规划 DPO2优化组合数学

白驹过隙

题目背景

三尸出鬼,亦生亦灭。以日为年,以此铭心。

题目描述

给出一个长为 nn 的序列 pp,求有多少个本质不同的序列 pp' 满足其是 pp 的一个重排且恰好有 mmii 满足 pi+1=pi+1p'_i+1=p'_{i+1}

::::info[重排]{open} 序列 aa' 是长为 nn 的序列 aa 的一个重排当且仅当序列 aa' 满足以下两个条件:

  • 序列 aa' 的长度为 nn
  • 存在一个 1n1\sim n 的排列 pp 使得 ai=apia_i=a'_{p_i}。 ::::

::::info[本质不同]{open} 两个长为 nn 的序列 a,ba,b 本质不同当且仅当存在一个 ii 满足 aibia_i\not=b_i。 ::::

输入格式

本题有多组测试数据。

第一行输入一个数 TT,表示数据组数。

接下来输入 2T2T 行,代表 TT 组数据。

每组数据第一行输入两个数 n,mn,m,第二行输入 nn 个数,表示序列 pp

输出格式

输出一行一个数,表示答案。对 998244353998244353 取模。

2
5 0
1 1 2 3 3
4 1
1 1 1 2
12
3

提示

请对程序常数因子给予充分的信任。

本题采用捆绑测试。

Subtask n,mn,m\le 特殊性质 分数
1 88 55
2 1616 m=0m=0 1515
3 100100 2020
4 500500 pi=ip_i=i 1010
5 ^ 存在一个 kk 满足 knk\mid npi=ikp_i=\left\lceil\frac{i}{k}\right\rceil 1515
6 3535

对于 100%100\% 的数据,保证 1pin1\le p_i\le n0m<n5000\le m<n\le 5001T51\le T\le 5,且 pi,n,mp_i,n,m 均为正整数。