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 自动生成**