#P12946. [GCJ Farewell Round #1] Colliding Encoding

    ID: 14816 远端评测题 20000ms 2048MiB 尝试: 0 已通过: 0 显示难度普及− 上传者: 标签>字符串2023哈希 hashingGoogle Code Jam

[GCJ Farewell Round #1] Colliding Encoding

题目描述

Alan 今天在学校上了第一节密码学课程。他决定运用所学知识,设计自己的加密方式。他计划将字母 A 到 Z 分别映射到十进制数字 00 到 99。然后,他会将每个单词中的字母替换为对应的数字,从而将单词编码为一个由数字组成的字符串。

由于过于兴奋,Alan 没有注意到英文字母共有 2626 个,而十进制数字只有 1010 个。因此,可能会出现碰撞,即不同的单词被编码为相同的字符串。

给定 Alan 想要编码的 NN 个单词及其使用的映射规则,请判断列表中是否存在至少一对单词会发生碰撞。

输入格式

输入的第一行包含测试用例的数量 TT。随后是 TT 个测试用例。

每个测试用例的第一行包含 2626 个十进制数字(00 到 99 的整数)DAD_A, DBD_B, …, DZD_Z,表示 Alan 使用的映射规则。字母 α\alpha 被映射为数字 DαD_\alpha。

每个测试用例的第二行包含一个整数 NN,表示 Alan 需要编码的单词数量。

接下来的 NN 行中,第 ii 行包含一个字符串 SiS_i,表示 Alan 要编码的第 ii 个单词。

输出格式

对于每个测试用例,输出一行 Case #x: y,其中 xx 是测试用例编号(从 11 开始),yy 为 YES(如果列表中至少存在一对不同单词的编码相同)或 NO(否则)。

2
0 1 2 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3
4
ABC
BC
BCD
CDE
0 1 2 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3
3
CDE
DEF
EFG
Case #1: NO
Case #2: YES

提示

样例解释

在样例 #1 中,A 映射为 00,B 为 11,C 为 22,D 为 33,E 为 33。此时,ABC 编码为 012012,BC 为 1212,BCD 为 123123,CDE 为 233233。由于所有编码均不同,因此没有碰撞。

在样例 #2 中,C 映射为 22,D 为 33,E 为 33,F 为 33,G 为 33。此时,CDE 编码为 233233,DEF 和 EFG 均为 333333。由于 DEF 和 EFG 的编码相同,因此存在碰撞。

数据范围

  • 1≤T≤1001 \leq \mathbf{T} \leq 100。
  • 对于所有 α\alpha,0≤Dα≤90 \leq \mathbf{D}_{\alpha} \leq 9。
  • 对于所有 ii,1≤Si1 \leq \mathbf{S}_{i} 的长度 ≤10\leq 10。
  • 对于所有 ii,Si\mathbf{S}_{i} 的每个字符均为大写字母 A 到 Z。
  • 对于所有 i≠ji \neq j,Si≠Sj\mathbf{S}_{i} \neq \mathbf{S}_{j}。

测试集 1(4 分,可见判定)

  • 1≤N≤1001 \leq \mathbf{N} \leq 100。

测试集 2(10 分,可见判定)

  • 1≤N≤6×1041 \leq \mathbf{N} \leq 6 \times 10^{4}。

翻译由 DeepSeek V3 完成