编程题
### 问题描述 在洛桥城市,有一位名叫诺伊的年轻人。他是一位热衷于数学与逻辑谜题的人,他的朋友星迪知道这一点,并经常会向他提出一些有趣的挑战。某日,星迪向诺伊提出了一个关于数组的挑战。 星迪给诺伊一个大小为 $N$ 的数组 $A$ 和一个整数 $K$。诺伊可以对这个数组执行任意次(可能为零次)以下操作: 选择两个整数 $L$ 和 $R$ ($1 \leq L \leq R \leq N$),然后对每个满足 $L \leq i \leq R$ 的 $i$,将 $A_i$ 设置为 $A_{\lfloor \frac{L+R}{2} \rfloor}$。这里,$\lfloor \rfloor$ 表示向下取整函数。 也就是说,对子数组 $[L, R]$ 执行以下操作: - 如果这个子数组的长度为奇数,将所有元素设置为中间元素。 - 如果这个子数组的长度为偶数,则将所有元素设置为两个中间元素中的左边一个。 诺伊的目标是,通过一些操作后,能否使数组中所有元素都等于 $K$?他需要你的帮助来解决这个问题。 ### 输入格式 输入的第一行将包含一个单独的整数 $T$,表示测试用例的数量。 每个测试用例包含两行输入。 每个测试用例的第一行包含两个由空格分隔的整数 $N$ 和 $K$ ——数组的元素数量和值 $K$。 每个测试用例的第二行包含 $N$ 个由空格分隔的整数 $A_1, A_2, ..., A_N$ ——数组的元素。 数据范围保证: - $1 \leq T \leq 10^5$。 - $1 \leq N \leq 10^5$。 - $-10^9 \leq K \leq 10^9$。 - $1 \leq A_i \leq 10^9$。 - 保证每个测试样例 $N$ 的总和不超过 $5 \times 10^5$。 ### 输出格式 对于每个测试用例,在新的一行上输出答案:如果所有元素都可以设置为 $K$,则输出 "Yes";否则输出 "No"。 ### 样例输入 ```text 4 4 10 1 2 3 4 3 1 1 2 3 5 5 7 -5 5 -2 5 4 9 -9 -9 8 0 ``` ### 样例输出 ```text No Yes Yes No ``` ### 说明 - 测试用例 1:没有办法使数组中的所有元素都等于 $10$。 - 测试用例 2:执行操作的一种方式如下: 1. 首先,选择 $L=1$ 和 $R=2$。这使得数组变为 $[1,1,3]$。 2. 然后,选择 $L=1$ 和 $R=3$。这使得数组变为 $[1,1,1]$,完成任务。 - 测试用例 3:选择 $L=1$ 和 $R=5$。因为中间元素是 $5$,所以所有元素都变为 $5$,满足要求。 - 测试用例 4:没有办法使所有元素都等于 $9$。
查看答案
赣ICP备20007335号-2