CF1312C.Adding Powers

普及/提高-

通过率:0%

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

Suppose you are performing the following algorithm. There is an array v1,v2,,vnv_1, v_2, \dots, v_n filled with zeroes at start. The following operation is applied to the array several times — at ii -th step ( 00 -indexed) you can:

  • either choose position pospos ( 1posn1 \le pos \le n ) and increase vposv_{pos} by kik^i ;
  • or not choose any position and skip this step.

You can choose how the algorithm would behave on each step and when to stop it. The question is: can you make array vv equal to the given array aa ( vj=ajv_j = a_j for each jj ) after some step?

输入格式

The first line contains one integer TT ( 1T10001 \le T \le 1000 ) — the number of test cases. Next 2T2T lines contain test cases — two lines per test case.

The first line of each test case contains two integers nn and kk ( 1n301 \le n \le 30 , 2k1002 \le k \le 100 ) — the size of arrays vv and aa and value kk used in the algorithm.

The second line contains nn integers a1,a2,,ana_1, a_2, \dots, a_n ( 0ai10160 \le a_i \le 10^{16} ) — the array you'd like to achieve.

输出格式

For each test case print YES (case insensitive) if you can achieve the array aa after some step or NO (case insensitive) otherwise.

输入输出样例

  • 输入#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

说明/提示

In the first test case, you can stop the algorithm before the 00 -th step, or don't choose any position several times and stop the algorithm.

In the second test case, you can add k0k^0 to v1v_1 and stop the algorithm.

In the third test case, you can't make two 11 in the array vv .

In the fifth test case, you can skip 909^0 and 919^1 , then add 929^2 and 939^3 to v3v_3 , skip 949^4 and finally, add 959^5 to v2v_2 .

首页