题目描述
给定一个包含 n 个正整数的数组 a,元素编号从 1 到 n。如果对于数组中任意两个(不一定不同)的数字 x 和 y,当 x≥y 时,⌊yx⌋(x 除以 y 的商,向下取整)也在该数组中,则称该数组为完整数组。
已知数组 a 中的所有数字均不超过 c。你的任务是检查给定数组是否为完整数组。
输入格式
每个测试点包含多组输入数据。第一行包含一个整数 t (1≤t≤10000),表示输入数据的组数。接下来是各组数据的描述。
每组数据的第一行包含两个整数 n 和 c (1≤n≤106,1≤c≤107),分别表示数组 a 的大小和数组中数字的上限。
第二行包含 n 个整数 a1,a2,…,an (1≤ai≤c),表示数组 a 的元素。
设 N 表示所有数据组中 n 的总和,C 表示所有数据组中 c 的总和。保证 N≤106 且 C≤107。
输出格式
对于每组输入数据,如果数组是完整的输出 Yes
,否则输出 No
。
3
3 5
1 2 5
4 10
1 3 3 7
1 2
2
Yes
No
No
数据范围与提示
详细子任务附加限制及分值如下表所示。其中子任务 0 是样例。
子任务 |
分值 |
附加限制 |
子任务依赖 |
备注 |
1 |
13 |
N≤100 |
0 |
|
2 |
17 |
N≤100000,C≤10000 |
0 |
3 |
15 |
N≤1000 |
0,1 |
4 |
27 |
N≤100000 |
0∼3 |
5 |
28 |
|
0∼4 |