#B. 有些人心如花木,皆向阳而生

    传统题 1000ms 256MiB

有些人心如花木,皆向阳而生

该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。

背景

少年的肩膀,就该挑起清风明月、杨柳依依和草长莺飞,少年郎的肩头,本就应当满是美好的事物啊。

题目描述

假设你正在执行如下算法。有一个数组 v1,v2,,vnv_1, v_2, \dots, v_n,初始时所有元素均为 00。你可以对该数组多次进行如下操作——在第 ii 步(从 00 开始编号)时,你可以:

  • 选择某个位置 pospos1posn1 \le pos \le n),并将 vposv_{pos} 增加 kik^i
  • 或者不选择任何位置,跳过这一步。

你可以自行决定每一步算法的行为以及何时停止。

问题是:你能否在某一步之后,使数组 vv 恰好等于给定数组 aa(即对于每个 jj,都有 vj=ajv_j = a_j)?

输入格式

第一行包含一个整数 TT1T10001 \le T \le 1000),表示测试用例的数量。接下来的 2T2T 行,每两行描述一个测试用例。

每个测试用例的第一行包含两个整数 nnkk1n301 \le n \le 302k1002 \le k \le 100),分别表示数组 vvaa 的长度,以及算法中使用的 kk 的值。

第二行包含 nn 个整数 a1,a2,,ana_1, a_2, \dots, a_n0ai10160 \le a_i \le 10^{16}),表示你希望最终得到的数组 aa

输出格式

对于每个测试用例,若你能够在某一步后使数组 vv 等于数组 aa,输出 YES;否则输出 NO。

输入输出样例 #1

输入 #1

5
4 100
0 0 0 0
1 2
1
3 4
1 4 1
3 2
0 1 3
3 9
0 59049 810

输出 #1

YES
YES
NO
NO
YES

说明/提示

在第一个测试用例中,你可以在第 00 步之前停止算法,或者多次跳过操作后再停止。

在第二个测试用例中,你可以将 k0k^0 加到 v1v_1 上,然后停止算法。

在第三个测试用例中,你无法在数组 vv 中得到两个 11

在第五个测试用例中,你可以跳过 909^0919^1,然后将 929^2939^3 加到 v3v_3 上,跳过 949^4,最后将 959^5 加到 v2v_2 上。

限制

1s,256MiB.

2025ACM新生积分赛 Round #1

未参加
状态
已结束
规则
ACM/ICPC
题目
12
开始于
2025-10-19 13:15
结束于
2025-10-19 18:15
持续时间
5 小时
主持人
参赛人数
71