#CF2127A. 混合 MEX 与最大值
混合 MEX 与最大值
每次测试时间限制: 秒
内存限制: 兆字节
题目描述
给定一个由 个非负整数组成的数组 。然而, 中的某些元素缺失,用 表示。
我们定义数组 是好的,当且仅当对于每一个 ,下式成立:
$$\operatorname{mex}([a_i, a_{i+1}, a_{i+2}]) = \max([a_i, a_{i+1}, a_{i+2}]) - \min([a_i, a_{i+1}, a_{i+2}]) $$其中 表示集合 的最小排除值(MEX)。
你需要判断是否可以通过将每个 替换为一个非负整数,使得 变成好的数组。
输入
每个测试点包含多个测试用例。第一行包含一个整数 ()——测试用例的数量。
每个测试用例的第一行包含一个整数 ()——数组 的长度。
第二行包含 个整数 ()。 表示该元素缺失。
输出
对于每个测试用例,如果有可能使 成为好的数组,输出 "YES",否则输出 "NO"。
你可以以任意大小写输出答案(例如,"yEs"、"yes"、"Yes"、"YES" 均视为肯定响应)。
示例
输入
8
3
-1 -1 -1
5
1 1 1 1 0
6
5 5 1 -1 -1 1
4
-1 -1 0 -1
4
-1 1 1 -1
3
3 3 -1
5
0 0 0 0 0
7
3 0 1 4 -1 2 3
输出
YES
NO
NO
NO
YES
YES
NO
NO
注
在第一个测试用例中,我们可以令 。那么:
- $\operatorname{mex}([a_1, a_2, a_3]) = \operatorname{mex}([1,1,1]) = 0$
并且 。因此数组 是好的。
在第二个测试用例中, 中没有元素缺失。考察:
- $\operatorname{mex}([a_1, a_2, a_3]) = \max([a_1, a_2, a_3]) - \min([a_1, a_2, a_3])$
- $\operatorname{mex}([a_2, a_3, a_4]) = \max([a_2, a_3, a_4]) - \min([a_2, a_3, a_4])$
但是
$\operatorname{mex}([a_3, a_4, a_5]) \ne \max([a_3, a_4, a_5]) - \min([a_3, a_4, a_5])$。
因此数组 不可能成为好的。
在第三个测试用例中, 均未缺失。然而:
- $\operatorname{mex}([a_1, a_2, a_3]) = \operatorname{mex}([5,5,1]) = 0$
并且 。所以无论怎样替换缺失元素,数组 都不可能成为好的。
一组整数 的最小排除值(MEX)定义为不在集合 中出现的最小非负整数 。例如,,因为 不在数组中;,因为 都出现了,而 没有出现。