AT_arc219_b [ARC219B] Reverse Permutation
题目描述
给定一个整数 $N$ 和一个排列 $P=(P_1,P_2,\ldots,P_N)$,其中 $P$ 是 $1,2,\ldots,N$ 的一个排列。
对任意排列 $Q=(Q_1,Q_2,\ldots,Q_N)$,定义 $Q'=(Q_1',Q_2',\ldots,Q_N')$ 为通过如下操作恰好一次后能够获得的字典序最小的排列:
- 选择一对整数 $(l,r)$,满足 $1\le l\le r\le N$,将 $Q_l,Q_{l+1},\ldots,Q_r$ 这一段翻转。更具体地,即将 $Q$ 变为 $(Q_1,Q_2,\ldots,Q_{l-1},Q_r,Q_{r-1},\ldots,Q_l,Q_{r+1},Q_{r+2},\ldots,Q_N)$。
请你求有多少个排列 $Q$ 满足 $Q'=P$,答案对 $998244353$ 取模。
给定 $T$ 组测试数据,分别求解。
输入格式
输入由标准输入给出,格式如下:
$T$
$\text{case}_1$
$\text{case}_2$
$\vdots$
$\text{case}_T$
每组测试数据格式如下:
$N$
$P_1\ P_2\ \ldots\ P_N$
输出格式
按顺序输出每个测试数据的答案,每行一个结果。
说明/提示
### 样例解释 1
以第一组输入为例。
例如,当 $Q=(2,3,1)$ 时,选择 $(l,r)=(1,3)$ 可以得到 $(1,3,2)$。无法通过其它操作得到字典序更小的排列,因此 $Q'=(1,3,2)$,故 $Q=(2,3,1)$ 满足 $Q'=P$。
满足 $Q'=P$ 的 $Q$ 一共有两个:$(2,3,1)$ 和 $(3,1,2)$。
### 数据范围
- $1\le T$
- $1\le N\le 5\times 10^5$
- $P$ 是 $1,2,\ldots,N$ 的一个排列。
- 所有输入均为整数。
由 ChatGPT 5 翻译