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 翻译