#ATagc058e. [AGC058E] Nearer Permutation
[AGC058E] Nearer Permutation
题目描述
在本题中,提到“顺序排列”时,指的是 的一个排列。
对于两个排列 ,定义它们的距离 如下:
- 通过不断交换 中相邻的两个元素,将 变为 。所需的最小操作次数即为 。
进一步地,对于排列 ,定义排列 如下:
- 设 。考虑所有排列 ,满足 。在这些排列中,字典序最小的排列即为 。
例如,当 时,满足 的排列有 。其中字典序最小的是 ,因此 。
给定排列 ,请判断是否存在排列 ,使得 。
每个输入文件包含 个测试用例。
什么是数列的字典序?判断两个不同数列 和 的大小的算法如下:
记 的第 个元素为 。若 的字典序小于 ,记为 ,大于则记为 。
- 取 和 中较短的长度为 。依次比较 时 和 是否相等。
- 若存在 的 ,取最小的此类 为 。若 小于 ,则 ,否则 ,算法结束。
- 若所有 ,则比较 和 的长度,短者字典序小。若 比 短,则 ,否则 ,算法结束。
输入格式
输入以如下格式从标准输入读入。
每个测试用例如下格式:
输出格式
对于每个测试用例,若存在排列 使得 ,输出 Yes,否则输出 No。
样例 1
输入
2
2
1 2
2
2 1
输出
Yes
Yes
样例 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
输出
Yes
Yes
Yes
Yes
No
No
样例 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
输出
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
No
No
No
No
No
No
No
No
No
No
No
No
No
No
说明/提示
限制条件
- 是 的一个排列
- 每个输入文件中 的总和不超过
- 所有输入值均为整数
样例解释 1
例如 时,取 ,则 。
样例解释 2
例如 时,取 ,则 。
由 ChatGPT 4.1 翻译