A9455.算术排列

普及-

通过率:0%

时间限制:1.00s

内存限制:128MB

题目描述

给你一个包含 nn 个正整数的数组 aa ,你可以对其执行以下操作。

每次操作,你可以选择数组中的任意一个元素 aia_i 并使用 ai2\lfloor \frac{a_i}{2} \rfloor 替换它,也就是 aia_i 除以 22 的整数部分(向下取整)。

试试看,如果你可以执行任意次上述操作,是否能够使数组 aa 变为数字 11nn 的一个排列--也就是说使数组 aa 包含 11nn 之间的所有整数,每个数字正好出现一次。

比如如果 a=[1,8,25,42],n=4a = [1, 8, 25, 42], n = 4 ,你可以对其进行以下操作:

  1. 88 替换为 82=4\lfloor \frac{8}{2} \rfloor = 4,然后 a=[1,4,25,2]a = [1, 4, 25, 2]
  2. 2525 替换为 252=12\lfloor \frac{25}{2} \rfloor = 12,然后 a=[1,4,12,2]a = [1, 4, 12, 2]
  3. 1212 替换为 122=6\lfloor \frac{12}{2} \rfloor = 6,然后 a=[1,4,6,2]a = [1, 4, 6, 2]
  4. 66 替换为 62=3\lfloor \frac{6}{2} \rfloor = 3,然后 a=[1,4,3,2]a = [1, 4, 3, 2]

输入格式

输入的第一行为一个正整数 t(1t104)t (1 \le t \le 10^4) 表示共有 tt 个测试用例 。

对于每个测试用例第一行为一个整数 n(1n50)n (1 \le n \le 50) 表示数组的大小;第二行有 nn 个正整数 ai(1ai109)a_i (1 \le a_i \le 10^9)

输出格式

对于每个测试用例,如果能够执行上述操作使得 aa 成为 11nn 的一个排列则输出 YES\tt{YES} 否则输出 NO\tt{NO}

你可以输出 YES\tt{YES}NO\tt{NO} 的任意大小写形式(例如,字符串 yEs\tt{yEs}yes\tt{yes}Yes\tt{Yes}YES\tt{YES} 都会被视为正确答案)。

输入输出样例

  • 输入#1

    6
    4
    1 8 25 2
    2
    1 1
    9
    9 8 3 4 2 7 1 5 6
    3
    8 2 1
    4
    24 7 16 7
    5
    22 6 22 4 22

    输出#1

    YES
    NO
    YES
    NO
    NO
    YES

说明/提示

第一个测试用例在问题陈述中已做出说明。

第二个测试用例中,不可能得到一个排列。

首页