题目描述
给定一个长度为 n 的数列 a。我们称这个数列是一个 完整数列 当且仅当这个数列满足如下条件:
如果数列中存在数值为 x 的元素,同时数列中存在数值为 y 的元素(这两个元素可以为同一个元素)且 x≥y,则数列中必然存在数值为 ⌊yx⌋ 的元素。
也就是说,你先从数列中任意选择一个元素,再从数列中任意选择一个元素(两次选的可以是同一个元素)且较大的那个元素的数值为 x,另一个元素的数值为 y(x≥y),数值为 ⌊yx⌋ 的元素也存在在数列中。⇒ 如果满足这个条件,则该数列是一个完整数列。
或者说,对于这个长度为 n 的数列 a,如果对于任意 1≤i≤n,1≤j≤n(其中 i 可以等于 j)均满足:数列 a 中存在数值为 ⌊min(ai,aj)max(ai,aj)⌋ 的元素,则数列 a 是一个完整数列。
(注:其实以上三段话的表示的意思是一样的,写三段主要是便于同学们理解题意)
本题中你需要做的就是判断给定的数列 a 是否是一个完整数列。
输入格式
输入包含多组测试数据。
输入的第一行包含一个整数 t(1≤t≤104),表示测试数据组数。
接下来每组测试数据包含两行。其中:
第一行包含两个整数 n 和 c(1≤n,c≤106),这里 n 表示数列 a 的长度,c 表示值域范围(也就是说数列 a 中的每个数都不会超过 c)。
第二行包含 n 个整数 a1,a2,…,an(1≤ai≤c)。
数据保证所有测试数据的 n 之和不超过 106,同时所有测试数据的 c 之和也不超过 106。
输出格式
对于每组测试数据,输出一行。
如果这组测试数据对应的数列 a 是一个完整数列,输出一行 Yes;否则,输出一行 No。
样例
4
3 5
1 2 5
4 10
1 3 3 7
1 2
2
1 1
1
Yes
No
No
Yes
2
10 10
1 2 3 4 5 6 7 8 9 10
10 100
1 2 3 5 15 20 25 38 44 50
Yes
No
说明/提示
样例解释
第 1 组测试数据:
- ⌊11⌋=1,a1=1,有出现在数列 a 中;
- ⌊22⌋=1;
- ⌊55⌋=1;
- ⌊12⌋=2,a2=2,有出现在数列 a 中;
- ⌊15⌋=5,a3=5,有出现在数列 a 中;
- ⌊25⌋=2,a2=2,有出现在数列 a 中。
所以数列 a 是完整数列。
第 2 组测试数据:
⌊37⌋=⌊231⌋=2,但是数列 a 中不存在数值为 2 的元素,所以数列 a 不是完整数列。
第 3 组测试数据:
⌊22⌋=1,但是数列中只有数值为 2 的元素,所以数列 a 不是完整数列。
数据规模与约定
- 对于 50% 的数据,t≤10;n,c≤100
- 对于 100% 的数据,1≤t≤104;1≤n,c≤106,所有测试数据的 n 之和不超过 106,同时所有测试数据的 c 之和也不超过 106