AT_oupc2023_day1_c.Caesar Cipher
通过率:0%
AC君温馨提醒
该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
通常,恺撒密码采用 3 个字母的位移,但在这里,我们允许使用任意密钥 k,其中 0≤k<26,将每个字母向后移动 k 位。加密文本由小写英文字母组成,位移时仅在小写字母范围内循环。
有关恺撒密码的详细说明:未加密的文本称为明文,加密后的文本称为密文。将密文还原成明文的过程称为解密。
给定密钥 k(0≤k<26)时,加密操作是将每个字符替换为其后第 k 个字符。注意,z 后面的字符为 a。
例如,密钥为 2 时,明文 ayz 加密后变为 cab。
现在有 N 个明文候选,每个候选记为 Si,且长度均为 M。
接下来给出 Q 个密文,请你将它们解密。第 j 个密文为 Tj,它是把某个明文候选用恺撒密码加密所得的密文,每个密文独立地使用某个密钥加密。
保证每个明文候选在加密后能唯一确定,也就是说,不存在 Sa 和 Sb(a=b)在经过某种密钥 ka,kb 加密后产生完全相同的密文的情况。
输入格式
输入通过标准输入给出,格式如下:
N M
S1
S2
⋮
SN
Q
T1
T2
⋮
TQ
输出格式
请输出 Q 行。
第 j 行输出将第 j 个密文 Tj 解密得到的明文。
输入输出样例
输入#1
2 3 ayz bbb 2 cab aaa
输出#1
ayz bbb
输入#2
3 7 rainbou osakauv atcoder 2 ptblbvw envaobh
输出#2
osakauv rainbou
说明/提示
样例说明 1
用密钥 2 加密 ayz 得到 cab。
用密钥 25 加密 bbb 得到 aaa。
数据范围
- 1≤N≤200,000
- 1≤M≤200,000
- 1≤Q≤200,000
- Mmax(N,Q)≤200,000
- N,M,Q 为整数
- Si,Tj 为仅包含小写英文字母且长度为 M 的字符串
- 明文候选在加密后能被唯一确定
- Tj 是明文候选之一经恺撒密码加密后所得
由 ChatGPT 5 翻译
输入解题思路,AI测评打分。不知道怎么写?