AT_agc052_d [AGC052D] Equal LIS

题目描述

给定一个 $1$ 到 $N$ 的整数的排列 $P_1,\ P_2,\ \dots,\ P_N$。请判断是否可以将其分成两个子序列,使得这两个子序列的最长上升子序列的长度相等。 形式化地说,目标是找到满足以下所有条件的两个整数序列 $a,\ b$: - $a,\ b$ 都是 $P$ 的子序列。 - 每个整数 $i=1,2,\cdots,N$ 恰好只在 $a$ 或 $b$ 中出现一次。 - ($a$ 的最长上升子序列的长度)$=$($b$ 的最长上升子序列的长度)。 请判断目标是否可以达成。 有 $T$ 组测试数据,请分别作答。

输入格式

输入从标准输入读入。输入的第 $1$ 行为: > $T$ 接下来有 $T$ 组测试数据,每组数据格式如下: > $N$ $P_1$ $P_2$ $…$ $P_N$

输出格式

对于每组测试数据,如果可以将给定排列分成两个最长上升子序列长度相等的子序列,则输出 `YES`,否则输出 `NO`。每组测试输出占一行。判题器对大小写不敏感。

说明/提示

### 数据范围 - $1\leq T\leq 2\times 10^5$ - $1\leq N\leq 2\times 10^5$ - $P_1,\ P_2,\ \dots,\ P_N$ 是 $1$ 到 $N$ 的一个排列。 - 所有测试数据中 $N$ 的总和不超过 $2\times 10^5$。 ### 样例解释 1 将 $[1,\ 3,\ 5,\ 2,\ 4]$ 分为 $[1,\ 5]$ 和 $[3,\ 2,\ 4]$,两者的最长上升子序列长度均为 $2$。对于 $[2,\ 3,\ 4,\ 5,\ 6,\ 1]$,无法分成两个最长上升子序列长度相等的子序列。 由 ChatGPT 4.1 翻译