CF2000C.Numeric String Template

传统题 时间 2000 ms 内存 256 MiB 5 尝试 1 已通过 1 标签

Numeric String Template

题目描述

Kristina 有一个名为 aa 的数组,称为模板,数组包含 nn 个整数。她还有 mm 个仅包含小写字母的字符串。这些字符串从 1 到 mm 编号。她想检查这些字符串是否符合模板。

一个字符串 ss 如果满足以下所有条件则被认为符合模板:

  • 字符串 ss 的长度等于数组 aa 的元素个数。
  • 数组 aa 中相同的数字对应到字符串 ss 中的相同字符。因此,如果 ai=aja_i = a_j,则 si=sjs_i = s_j(对于 1i,jn1 \le i,j \le n)。
  • 字符串 ss 中的相同字符对应到数组 aa 中的相同数字。因此,如果 si=sjs_i = s_j,则 ai=aja_i = a_j(对于 1i,jn1 \le i,j \le n)。

换句话说,字符串中的字符和数组中的数字之间必须有一一对应的关系。例如,如果 a=[3,5,2,1,3]a = [3, 5, 2, 1, 3],则字符串 abfda 符合模板,而字符串 afbfa 不符合,因为字符 f 对应了数字 1155

输入格式

  • 第一行包含一个整数 tt (1t1041 \le t \le 10^4) — 测试用例的数量。

接下来的描述是单个测试用例的内容。

  • 每个测试用例的第一行包含一个整数 nn (1n2×1051 \le n \le 2 × 10^5) — 数组 aa 的元素个数。

  • 第二行包含正好 nn 个整数 aia_i (109ai109-10^9 \le a_i \le 10^9) — 数组 aa 的元素。

  • 第三行包含一个整数 mm (1m2×1051 \le m \le 2 × 10^5) — 要检查的字符串的数量。

  • 接下来是 mm 个字符串,每个字符串包含非空的小写字母。

保证所有测试用例中 nn 的总和不超过 2×1052 × 10^5,且所有字符串的总长度不超过 2×1052 × 10^5

输出格式

对于每个测试用例,输出 mm 行。

  • 对于第 ii 个字符串,如果它符合模板,则输出 YES
  • 否则,输出 NO

样例

3
5
3 5 2 1 3
2
abfda
afbfa
2
1 2
3
ab
abc
aa
4
5 -3 5 -3
4
aaaa
bcbc
aba
cbcb
YES
NO
YES
NO
NO
NO
YES
NO
YES

在线编程 IDE

建议全屏模式获得最佳体验