#1649. 简单的问题

简单的问题

问题描述

给定长度为 nn 的数组 aa,重复执行以下操作直至数组长度为 1:

  1. 选择正整数 kk:满足 k<∣a∣k < |a| 且 ∣a∣/k|a|/k 为整数。∣a∣|a|为数组 aa 的长度。
  2. 分割数组 aa:将数组分割为 kk 个长度相等的子序列 s1,s2,…,sks_1, s_2, \dots, s_k,每个元素仅属于一个子序列。
  3. 生成新数组:替换 aa 为 [avg(s1),…,avg(sk)][\text{avg}(s_1), \dots, \text{avg}(s_k)],其中 avg(s)=∑i=1∣s∣si∣s∣\text{avg}(s) = \frac{\sum_{i=1}^{|s|} s_i}{|s|}。例:avg([1,2,1,1])=1+2+1+14=1.25\text{avg}([1,2,1,1]) = \frac{1+2+1+1}{4} = 1.25

任务:判断是否存在操作序列,使得最终结果为 a=[x]a = [x]。


输入

每个测试包含多个测试用例。第一行包含测试用例的数量 tt (1≤t≤10001 \le t \le 1000)。接下来是每个测试用例的描述。

每个测试用例的第一行包含两个整数 nn, xx (1≤n,x≤1001 \le n, x \le 100)——分别表示数组 aa 的长度和最终期望的目标值。

第二行包含 nn 个整数 a1,a2,…,ana_1, a_2, \ldots, a_n (1≤ai≤1001 \le a_i \le 100)——即数组 aa。


输出

对于每个测试用例,若存在这样的操作序列,则输出"YES"(不带引号),否则输出"NO"(不带引号)。


样例

4
1 3
3
4 9
7 11 2 5
6 9
1 9 14 12 10 8
10 10
10 10 10 10 10 10 10 10 10 10
YES
NO
YES
YES

注意

  1. 第一个测试用例

    • 初始条件:x=3x=3,数组 a=[3]a = [3]
    • 结果:直接满足条件,无需任何操作。
  2. 第二个测试用例

    • 初始条件:x=9x=9
    • 结果:无法通过任何操作序列使最终数组变为 a=[9]a = [9]。
  3. 第三个测试用例

    • 目标值:x=9x=9
    • 可行操作序列:
      1. 步骤 1(k=2k=2):
        • 划分集合:
          s1=[1,12,8]s_1 = [1, 12, 8],s2=[9,14,10]s_2 = [9, 14, 10]
        • 计算平均值:
          a=[avg(s1),avg(s2)]=[7,11]a = [\text{avg}(s_1), \text{avg}(s_2)] = [7, 11]
      2. 步骤 2(k=1k=1):
        • 合并集合:s1=[7,11]s_1 = [7, 11]
        • 计算最终平均值:
          a=[avg(s1)]=[9]a = [\text{avg}(s_1)] = [9]
  4. 第四个测试用例

    • 目标值:x=10x=10
    • 可行操作序列:
      1. 步骤 1(k=1k=1):
        • 直接选择集合:
          s1=[10,10,10,10,10,10,10,10,10,10]s_1 = [10, 10, 10, 10, 10, 10, 10, 10, 10, 10]
        • 计算平均值:
          a=[avg(s1)]=[10]a = [\text{avg}(s_1)] = [10]