SP17143 PSYCHO3 - Make Psycho

题目描述

**题目说明**: 若一个整数 $N$ 满足以下条件,则称其为「Psycho 数」:对 $N$ 进行质因数分解后,可以获得若干质数的幂指数。统计这些指数中偶数次幂和奇数次幂的数量。如果偶数次幂的数量严格大于奇数次幂的数量,则称该数 $N$ 为「Psycho 数」;否则,称为「普通数」。 例如,对于 $N = 67500$,其质因数分解为 $67500 = 2^2 \times 3^3 \times 5^4$。其中,指数 2 和 4 是偶数,指数 3 是奇数,偶数次幂有 2 个,奇数次幂有 1 个。因此,偶数次幂的数量(2)大于奇数次幂的数量(1),所以 67500 是一个「Psycho 数」。 现给定一个整数 $K$,请判断是否可以找到一个仅由「Psycho 数」组成的子集,使得这些数的和恰好为 $K$。

输入格式

第一行包含一个整数 $T$($1 \leq T \leq 100$),表示测试用例的数量。每个测试用例第一行包括两个整数 $N$ 和 $K$($1 \leq N \leq 20$,$1 \leq K \leq 10^9$)。下一行包含 $N$ 个整数 $p_1, p_2, \ldots, p_N$,其中 $0 \leq p_i \leq 10^9$。

输出格式

对于每个测试用例,如果能找到这样的子集,使得数的和为 $K$,输出 `Yes`;否则,输出 `No`。 **样例输入**: ``` 3 5 20 4 5 12 20 16 5 3 3 5 9 2 7 3 24 4 4 16 ``` **样例输出**: ``` Yes No Yes ``` **解释**: - 对于第一个测试用例:「Psycho 数」有 4 和 16。通过组合,可以得到 4、16 和 20(4 + 16)。因此,$K$ 为 20 时,可以实现。 - 在第二个测试用例中,唯一的「Psycho 数」是 9。虽然 $K$ 为 3,但无法找到和为 3 的「Psycho 数」组合。 - 对于第三个测试用例:「Psycho 数」为 4、4 和 16。可能的组合有 4、16、20(16+4)和 24(16+4+4)。因此,对于 $K$ 为 24,可以实现。 **注意**:数字 0 和 1 不属于「Psycho 数」。 **本翻译由 AI 自动生成**