#agc058e. [agc058_e]Nearer Permutation

[agc058_e]Nearer Permutation

问题陈述

在这个问题中,“排列”始终表示 (1,2,,N)(1,2,\cdots,N) 的排列。

对于两个排列 ppqq,我们定义它们之间的距离 d(p,q)d(p,q) 如下。

  • 考虑通过反复交换 pp 中相邻的两个项使其等于 qq。令 d(p,q)d(p,q) 为此过程所需的最小交换次数。

此外,对于一个排列 xx,我们如下定义另一个排列 f(x)f(x)

  • y=(1,2,,N)y=(1,2,\cdots,N)。考虑满足 d(x,z)d(y,z)d(x,z) \leq d(y,z) 的排列 zz。令 f(x)f(x) 为其中词典序最小的排列。

例如,当 x=(2,3,1)x=(2,3,1) 时,满足 d(x,z)d(y,z)d(x,z) \leq d(y,z) 的排列 zzz=(2,1,3),(2,3,1),(3,1,2),(3,2,1)z=(2,1,3),(2,3,1),(3,1,2),(3,2,1)。其中词典序最小的是 (2,1,3)(2,1,3),因此我们有 f(x)=(2,1,3)f(x)=(2,1,3)

给定一个排列 A=(A1,A2,,AN)A=(A_1,A_2,\cdots,A_N)。确定是否存在一个排列 xx,使得 f(x)=Af(x)=A

对于每个输入文件,解决 TT 个测试案例。

关于序列的词典序是什么?

这里描述的算法确定了不同序列 SSTT 之间的词典序。

下面,令 SiS_i 表示 SS 的第 ii 个元素。此外,令 S<TS \lt TS>TS \gt T 分别表示 “SS 词典序小于 TT” 和 “SS 词典序大于 TT”。

  1. LLSSTT 中较短的序列的长度。对于每个 i=1,2,,Li=1,2,\cdots,L,我们检查 SiS_iTiT_i 是否相等。
  2. 如果存在 ii 使得 SiTiS_i \neq T_i,令 jj 是最小的这样的 ii,并比较 SjS_jTjT_j。如果 SjS_j 小于 TjT_j(作为一个数),我们得出 S<TS \lt T 并退出;如果 SjS_j 大于 TjT_j,我们得出 S>TS \gt T 并退出。
  3. 如果不存在 ii 使得 SiTiS_i \neq T_i,比较 SSTT 的长度。如果 SS 的长度小于 TT,我们得出 S<TS \lt T 并退出;如果 SS 的长度大于 TT,我们得出 S>TS \gt T 并退出。

约束条件

  • 1T1500001 \leq T \leq 150000
  • 2N3000002 \leq N \leq 300000
  • (A1,A2,,AN)(A_1,A_2,\cdots,A_N)(1,2,,N)(1,2,\cdots,N) 的排列。
  • 一个输入文件中 NN 的总和不超过 300000300000
  • 输入中的所有值都是整数。

输入

输入以以下格式从标准输入给出:

TT case1case_1 case2case_2 \vdots caseTcase_T

每个案例的格式如下:

NN A1A_1 A2A_2 \cdots ANA_N

输出

对于每个案例,如果存在一个排列 xx,使得 f(x)=Af(x)=A,则打印 Yes,否则打印 No

样例输入 1

2
2
1 2
2
2 1

样例输出 1

Yes
Yes

例如,当 A=(2,1)A=(2,1) 时,可以让 x=(2,1)x=(2,1) 以满足 f(x)=Af(x)=A

样例输入 2

6
3
1 2 3
3
1 3 2
3
2 1 3
3
2 3 1
3
3 1 2
3
3 2 1

样例输出 2

Yes
Yes
Yes
Yes
No
No

例如,当 A=(2,3,1)A=(2,3,1) 时,可以让 x=(3,2,1)x=(3,2,1) 以满足 f(x)=Af(x)=A

样例输入 3

24
4
1 2 3 4
4
1 2 4 3
4
1 3 2 4
4
1 3 4 2
4
1 4 2 3
4
1 4 3 2
4
2 1 3 4
4
2 1 4 3
4
2 3 1 4
4
2 3 4 1
4
2 4 1 3
4
2 4 3 1
4
3 1 2 4
4
3 1 4 2
4
3 2 1 4
4
3 2 4 1
4
3 4 1 2
4
3 4 2 1
4
4 1 2 3
4
4 1 3 2
4
4 2 1 3
4
4 2 3 1
4
4 3 1 2
4
4 3 2 1

样例输出 3

Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
No
No
No
No
No
No
No
No
No
No
No
No
No
No
No