CF2031B.Penchick and Satay Sticks

传统题 时间 2000 ms 内存 256 MiB 4 尝试 1 已通过 1 标签

Penchick and Satay Sticks

题目描述

Penchick 和他的朋友 Kohane 正在印度尼西亚旅游,他们的下一站是泗水!

在泗水热闹的美食摊上,Kohane 买了 nn 根沙爹串,并将它们排成一排,第 ii 根沙爹串的长度为 pip_i。已知 pp 是一个长度为 nn 的排列 ^{\text{∗}}

Penchick 想要将沙爹串按长度递增的顺序排列,使得对于每个 1in1\le i\le n,都有 pi=ip_i=i。为了增加趣味,他们制定了一个规则:他们只能交换长度恰好相差 11 的相邻沙爹串。具体来说,他们可以进行如下操作任意次(包括零次):

  • 选择一个下标 ii1in11\le i\le n-1),满足 pi+1pi=1|p_{i+1}-p_i|=1
  • 交换 pip_ipi+1p_{i+1}

请判断是否可以通过上述操作将排列 pp(即沙爹串)排序。

^{\text{∗}} 长度为 nn 的排列是一个由 11nnnn 个互不相同的整数组成的数组,顺序任意。例如,[2,3,1,5,4][2,3,1,5,4] 是一个排列,但 [1,2,2][1,2,2] 不是排列(22 在数组中出现了两次),[1,3,4][1,3,4] 也不是排列(n=3n=3 但数组中有 44)。

输入格式

每组测试包含多个测试用例。第一行包含测试用例数 tt1t21051 \le t \le 2\cdot 10^5)。接下来是每个测试用例的描述。

每个测试用例的第一行包含一个整数 nn1n21051 \le n \le 2\cdot 10^5),表示沙爹串的数量。

每个测试用例的第二行包含 nn 个整数 p1,p2,,pnp_1, p_2, \ldots, p_n1pin1 \le p_i \le n),表示沙爹串的长度排列 pp

保证所有测试用例中 nn 的总和不超过 21052\cdot 10^5

输出格式

对于每个测试用例,如果可以通过上述操作将排列 pp 排序,输出 "YES";否则输出 "NO"。

你可以用任意大小写输出答案(如 "yEs"、"yes"、"Yes"、"YES" 都会被认为是肯定回答)。

说明/提示

在第一个测试用例中,我们可以对排列 p=[2,1,3,4]p = [2, 1, 3, 4] 在下标 11 处进行一次操作(p2p1=12=1|p_2 - p_1| = |1 - 2| = 1),得到 p=[1,2,3,4]p = [1, 2, 3, 4],从而完成排序。

在第二个测试用例中,可以证明无法通过操作将排列 p=[4,2,3,1]p = [4, 2, 3, 1] 排序。以下是对该排列可以进行的一系列操作示例:

  • 选择 i=2i = 2p3p2=32=1|p_3 - p_2| = |3 - 2| = 1),得到 p=[4,3,2,1]p = [4, 3, 2, 1]
  • 选择 i=1i = 1p2p1=34=1|p_2 - p_1| = |3 - 4| = 1),得到 p=[3,4,2,1]p = [3, 4, 2, 1]
  • 选择 i=3i = 3p4p3=12=1|p_4 - p_3| = |1 - 2| = 1),得到 p=[3,4,1,2]p = [3, 4, 1, 2]

遗憾的是,经过这些操作后,排列 pp 仍未排序。

由 ChatGPT 4.1 翻译

样例

2
4
2 1 3 4
4
4 2 3 1
YES
NO

在线编程 IDE

建议全屏模式获得最佳体验