B. Plus and Multiply
time limit per test3 seconds
memory limit per test512 megabytes
inputstandard input
outputstandard output
There is an infinite set generated as follows:
1 is in this set.
If x is in this set, x⋅a and x+b both are in this set.
For example, when a=3 and b=6, the five smallest elements of the set are:
1,
3 (1 is in this set, so 1⋅a=3 is in this set),
7 (1 is in this set, so 1+b=7 is in this set),
9 (3 is in this set, so 3⋅a=9 is in this set),
13 (7 is in this set, so 7+b=13 is in this set).
Given positive integers a, b, n, determine if n is in this set.
Input
The input consists of multiple test cases. The first line contains an integer t (1≤t≤105) — the number of test cases. The description of the test cases follows.
The only line describing each test case contains three integers n, a, b (1≤n,a,b≤109) separated by a single space.
Output
For each test case, print “Yes” if n is in this set, and “No” otherwise. You can print each letter in any case.
Example
inputCopy
5
24 3 5
10 3 6
2345 1 4
19260817 394 485
19260817 233 264
outputCopy
Yes
No
Yes
No
Yes
Note
In the first test case, 24 is generated as follows:
1 is in this set, so 3 and 6 are in this set;
3 is in this set, so 9 and 8 are in this set;
8 is in this set, so 24 and 13 are in this set.
Thus we can see 24 is in this set.
The five smallest elements of the set in the second test case is described in statements. We can see that 10 isn’t among them.
题解:在本题中,数字1是本问题的基数,进行a的乘法或者是与b相关的加法中,都是离不开1的,而且在新的数字组中的问题求解的过程中,这个新的数字也是构成了新的基底去进行更进一步的数字计算。首先,我们会想到运用循环的思路去对于本问题进行相关的求解,a为1的时候是一种特殊情况,因为11永远不能到达n值,需要单独讨论,不难发现,我们对于b非1的情况中,n减去原来数字中的数据再对于b进行相关的求模运算一定为0,那么此时就是对于a,b同时为1的情况进行相关的讨论了,由于a=1的时候,此时n%b不一定等于1的,而且此时还有b为1的情况,我们要对于这种情况进行讨论,所以我们在余数的