Logo Wy Online Judge

WyOJ

时间限制:1 s 空间限制:256 MB 控制组: group_default 压缩包大小: 0.807 MB

#432. 数组 (array)

Statistics

Array

【题目描述】

给你一个长度为 $n$ 的序列 $a$ 和一个魔法数字 $k$,你可以进行两种操作:

  1. 选择一个可以整除 $k$ 的数 $a_{i}$,把它变成 $k$ 个数 $\frac{a_{i}}{k}$。例如,将 $[1, 2, 3]$ 在 $k = 2$ 的情况下选择 $2$ 进行操作变成 $[1, 1, 1, 3]$。
  2. 选择 $k$ 个连续且相等的数 $a_{i} = a_{i+1} = \dots = a_{i+k-1}$,把它变成一个数 $a_{i} \times k$。例如,将 $[1, 2, 2, 3]$ 在 $k = 2$ 的情况下选择 $a_{2}, a_{3}$ 进行操作变成 $[1, 4, 3]$。

现在给你另一个长度为 $m$ 的序列 $b$,问能否通过若干次操作将 $a$ 变成 $b$。

【输入格式】

从文件 array.in 中读取数据

测试包含多组数据。

第一行一个正整数 $t$ 为数据的组数 $(1 \leq t \leq 10^4)$。

对于每组数据,第一行为两个正整数 $n, k$ 分别表述序列 $a$ 的长度和魔法数字 $k$ $(1 \leq n \leq 10^6, 2 \leq k \leq 10^9)$。

接下来一行 $n$ 个整数表示序列 $a$,$(1 \leq a_{i} \leq 10^9)$。

接下来一行为一个整数 $m$ 表示序列 $b$ 的长度 $(1 \leq m \leq 5 \times 10^4)$。

最后一行 $m$ 个整数表述序列 $b$,$(1 \leq b_{i} \leq 10^9)$。

$\Sigma n \leq 10^6$,$\Sigma m \leq 2 \times 10^5$

【输出格式】

输出到文件 array.out

$t$ 行每行输出 Yes 或 No 表示是否能通过若干次操作将 $a$ 变成 $b$。

【输入样例】

5
5 2
1 2 2 4 2
4
1 4 4 2
6 2
1 2 2 8 2 2
2
1 16
8 3
3 3 3 3 3 3 3 3
4
6 6 6 6
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

【输出样例】

Yes
Yes
No
Yes
No

【数据范围与约定】

对于 $30\%$ 的数据,$\Sigma m\le10^3$

另有 $20\%$ 的数据,$a_{i}=k^i$

对于 $100\%$ 的数据,没有特殊限制。

【样例解释】

对于第1个数据,$[1, 2, 2, 4, 2] \geq [1, 4, 4, 2] $

对于第2个数据,$[1, 2, 2, 8, 2, 2]\geq[1, 4, 8, 2, 2]\geq [1, 4, 8, 4] \geq [1, 4, 4, 4, 4] \geq[1, 8, 4, 4]\geq[1, 8, 8] \geq [1, 16]$