#P3377. 第2题-数组长度排列

第2题-数组长度排列

题目内容

给定一个长度为 nn 的整数数组 aa 。你可以对 aa 进行若干次下面的操作(可以不操作):

  • 选择一个下标 1in1 ≦i≦ n,并将 aia_i 更新为ai2\lfloor \frac {a_i} {2} \rfloor。在这里,x\lfloor x \rfloor 意味着对 xx 下取整。

小欧想知道,是否存在一个操作序列,使得在所有操作后数组 aa 为一个排列?

【名词解释】

长度为 nn排列是由 1,2,...,n1,2,...,nnn 个整数、按任意顺序组成的数组(每个整数均恰好出现一次)。例如,{2,3,1,5,42,3,1,5,4} 是一个长度为 55 的排列,而 {1,2,21,2,2} 和 {1,3,41,3,4} 都不是排列,因为前者存在重复元素,后者包含了超出范围的数。

输入描述

每个测试文件均包含多组测试数据。第一行输入一个整数 T(1T104)T(1 ≤ T ≤ 10^4) 代表数据组数,每组测试数据描述如下:

第一行包含一个整数 n(1n2×105)n(1≤n≤2×10^5) ,表示数组 aa 的长度。

第二行包含长度为 nn 个整数,0ai1090≤a_i≤10^9

除此之外,保证单个测试文件的 nn 之和不超过 2×1052×10^5

输出描述

输出 TT 行,其中第 ii 行为第 ii 组测试数据的答案。对于每一组测试数据,如果答案存在,在一行上输出 YESYES ; 否则直接输出 NONO 。您可以以任何大小写形式输出答案。例如,字符串 yEsyesyEs、yesYesYes 都将被视为肯定的回答。

样例1

输入

5
3
1 2 4
3
1 2 6
1
1
2
1 536870911
5
25752 3010 1188 126 270

输出

NO
YES
YES
NO
YES

说明

对于第 22 组测试数据,我们可以对 a3a_3 进行一次操作,数组 aa 变为 {1,2,31,2,3} ,是长度为 33 的排列。