已结束 GESP挑战赛#9

A3141 | 序列合拆

时间限制1s
内存限制128MB
通过 / 提交0/0

题目描述

$Yuilice$拥有一个长度为$n$的序列$a_1,a_2,a_3\dots a_n$,以及一个正整数$m$,你可以对该序列进行以下两种操作。

1. 在序列当中的整数$a_i$,若整数$a_i > m$且满足条件$a_i \% m = 0$则$a_i$可以被均等的拆分为$m$份,每份数值为$\frac{a_i}{m}$,组成一个子序列从而替代$a_i$原先的位置。
2. 在序列当中若存在一段连续子序列$[l,r]$满足$a_l = a_{l+1} = \dots a_r$,并且该序列长度为$m$,那么可以选中该连续子序列$[l,r]$合并为一个整数$a_i = a_l * m$从而替代子序列$[l,r]$。

现在$Yuilice$给出一个新的序列$b$,求解序列$a$是否可以通过以上两种操作变为$b$,若可以输出 Yes,反之输出 No

注:本题包含多组测试样例

输入格式

第一行输入一个整数$t(1 \leq t \leq 10^4)$ - 代表共有T组样例进行测试。

每组样例的输入格式如下:

第一行输入两个整数$n,m(1 \leq n \leq 5 \times 10^{4} , 2 \leq m \leq 10^9)$ - 代表序列$a$的长度与$m$的取值。

第二行输入$n$个整数$a_i(1 \leq a_i \leq 10^9)$ - 代表序列a的取值

第三行输入一个整数$k(1 \leq k \leq 5 \times 10^4)$ - 代表序列$b$的长度

第四行输出$k$个整数$b_i(1 \leq b_i \leq 10^9)$ - 代表序列$b$的取值


题目保证在每个测试点当中,$n$的取值总和不超过$2 \times 10^5$。

输出格式

针对于每组样例 - 输出 YesNo,独占一行。

输入输出样例

输入 #1
5
3 2
2 2 2
2
4 2
3 2
2 2 2
1
6
8 2
1 1 1 1 1 1 1 1
4
2 2 2 2
8 3
3 9 6 3 12 12 36 12
16
9 3 2 2 2 3 4 12 4 12 4 12 4 12 4 4
8 3
3 9 6 3 12 12 36 12
7
12 2 4 3 4 12 56
输出 #1
Yes
No
Yes
Yes
No
C++ 编辑器
输入
输出