编程题
### 问题描述 对于长为 $m$ 的序列 $b$,若对于任意的 $2\leq i \leq m-1$,都有 $b_i < \min(b_{i-1},b_{i+1})$ 或 $b_i > \max(b_{i-1},b_{i+1})$,则认为数组 $b$ 是交错的。特别的,任意一个长为 $1$ 的序列都是交错的。若序列 $b$ 长度为 $2$,则当且仅当 $b$ 中两个元素大小不一样时序列 $b$ 是交错的。例如序列 $[3],[7,2],[1,4,3,5,2]$ 都是交错的,但序列 $[2,2],[1,1,1],[1,4,3,1,3]$ 不是交错的。 给定一个正整数 $n$ 和一个长为 $n$ 的数组 $a$。问能否选择 $a$ 的两个非空子序列,使得: 1. 数组 $a$ 中的每一个元素都恰好属于一个子序列。 2. 两个子序列都是交错的。 ### 输入格式 输入包含多组数据。 输入第一行包含一个正整数 $T$,表示测试组数。 每组测试的第一行为一个整数 $n$,表示数组 $a$ 的长度。 每组测试的第二行为 $n$ 个整数,表示数组 $a$。 ### 输出格式 对于每组测试,若可以选择两个满足条件的 $a$ 的非空子序列,输出 `YES`。否则,输出 `NO`。 ### 样例输入 ```text 4 2 314 159 3 3 3 3 5 2 3 1 4 5 7 1 2 3 4 3 2 1 ``` ### 样例输出 ```text YES NO YES NO ``` ### 说明 对于第一组测试,可以将第 $1$ 个数放入第 $1$ 个子序列中,将第 $2$ 个数放入第 $2$ 个子序列中。两个子序列长度都为 $1$,都是交错序列。 对于第二组测试,无论如何划分,总会有一个子序列包含两个连续的 $3$,使其无法成为交错序列。 对于第三组测试,可以将第 $1,5$ 个数放入第 $1$ 个子序列中,将第 $2,3,4$ 个数放入第 $2$ 个子序列中。两个子序列都是交错的。 对于第四组测试,可以证明无论如何选择两个子序列都无法满足要求。 ### 评测数据规模 对于 $20$% 的评测数据,$2\leq n \leq 100$。 对于 $40$% 的评测数据,$2\leq n \leq 10^3$。 对于 $100$% 的评测数据,$2\leq n \leq 10^5,1\leq T \leq 10,1\leq a_i \leq 10^9$。
查看答案
赣ICP备20007335号-2