#ARC219B. 反转排列

反转排列

反转排列

时间限制:2s
空间限制:1024MB

题目描述

给定整数 NN 和一个 11 到 NN 的排列 P=(P1,P2,…,PN)P=(P_1,P_2,\ldots,P_N)。

对于任意一个 11 到 NN 的排列 QQ,考虑恰好执行一次下列操作后能够得到的、字典序最小的排列 Q′Q':

  • 选择满足 1≤l≤r≤N1\le l\le r\le N 的整数 l,rl,r,反转连续段 Ql,Ql+1,…,QrQ_l,Q_{l+1},\ldots,Q_r。

求满足 Q′=PQ'=P 的排列 QQ 的数量。答案对 998244353998244353 取模。

你需要处理 TT 组测试数据。

输入格式

第一行输入整数 TT。

随后依次输入每组测试数据。每组数据第一行输入整数 NN,第二行输入 NN 个整数 P1,P2,…,PNP_1,P_2,\ldots,P_N。

输出格式

对每组测试数据输出一行一个整数,表示答案。

样例输入 1

4
3
1 3 2
1
1
4
4 3 2 1
6
1 2 6 4 5 3

样例输出 1

2
1
0
9

数据范围

对于所有数据:

  • 1≤T1\le T;
  • 1≤N≤5×1051\le N\le 5\times10^5;
  • PP 是 11 到 NN 的排列;
  • 单个测试点内所有测试数据的 NN 之和不超过 5×1055\times10^5。
子任务编号 分值 特殊限制
1 14 每组数据满足 N≤8N\le8
2 18 每组数据中的 Pi=iP_i=i 对所有 ii 成立
3 38 每组数据满足 N≤150N\le150
4 30 无特殊限制