#P13546. [OOI 2022] Integral Array

[OOI 2022] Integral Array

Description

给定一个长度为 nn 的正整数数组 aa,编号从 11nn。我们称一个数组为整性数组,如果对于数组中任意两个(可以相同)数 xxyy,且 xyx \ge y,都有 xy\left\lfloor \frac{x}{y} \right\rfloor(即 xx 整除 yy 的向下取整)也在数组中。

保证所有 aa 中的数都不超过 cc。你的任务是判断给定的数组是否为整性数组。

Input Format

输入包含多组测试数据。第一行包含一个整数 tt1t1041 \le t \le 10^4),表示测试数据组数。接下来是每组测试数据的描述。

每组测试数据的第一行包含两个整数 nncc1n1061 \le n \le 10^61c1071 \le c \le 10^7),分别表示数组大小和数组元素的最大值。

第二行包含 nn 个整数 a1,a2,,ana_1, a_2, \ldots, a_n1aic1 \le a_i \le c),表示数组 aa

NN 为所有测试数据中 nn 的总和,CC 为所有测试数据中 cc 的总和。保证 N106N \le 10^6C107C \le 10^7

Output Format

对于每组测试数据,若数组是整性数组,输出 Yes,否则输出 No

3
3 5
1 2 5
4 10
1 3 3 7
1 2
2
Yes
No
No

Hint

说明

在第一个测试样例中,可以验证数组是整性的:

  • 11=1\left\lfloor \frac{1}{1} \right\rfloor = 1a1=1a_1 = 1,该数在数组中
  • 22=1\left\lfloor \frac{2}{2} \right\rfloor = 1
  • 55=1\left\lfloor \frac{5}{5} \right\rfloor = 1
  • 21=2\left\lfloor \frac{2}{1} \right\rfloor = 2a2=2a_2 = 2,该数在数组中
  • 51=5\left\lfloor \frac{5}{1} \right\rfloor = 5a3=5a_3 = 5,该数在数组中
  • 52=2\left\lfloor \frac{5}{2} \right\rfloor = 2a2=2a_2 = 2,该数在数组中

因此该数组满足条件,是整性数组。

在第二个测试样例中,73=2\left\lfloor \frac{7}{3} \right\rfloor = 2,但 22 不在 aa 中,因此不是整性数组。

在第三个测试样例中,22=1\left\lfloor \frac{2}{2} \right\rfloor = 1,但数组中只有 22,没有 11,因此不是整性数组。

评分说明

本题测试数据分为 7 组。只有通过某组全部测试点,且通过所有必需的前置组,才能获得该组分数。

组别 分值 NN CC 必须通过的组 备注
0 -- -- --
1 13 N100N \le 100 0
2 17 N100000N \le 100\,000 C10000C \le 10\,000
3 15 N1000N \le 1000 -- 0, 1
4 27 N100000N \le 100\,000 0--3
5 28 -- 0--4