SHAOXIAOJ正在加载中...

1704: 2024AHCPC - 密钥破解

金币值:2 定数:1 时间限制:1.000 s 内存限制:128 M
正确:0 提交:0 正确率:0.00% 命题人:
点赞量:0 收藏量:0 题目类型:程序 知识点: 程序设计大赛

题目描述

         淮南市是重要的能源基地,目前在积极研发新能源氢能汽车。新款氢能源汽车上需要设计一套安全设备,阻止非经授权的第三方调整工作参数。这套设备的其中一个模块是加解密系统,系统中存储有某个密钥,可以利用这个密钥加密字符串。现组织安全公司对系统安全性进行攻击演练,即判定如果截获了一对明文和密文,是否存在有效算法破解出密钥。
         对于给定的常数 $x,y$ 和小写字母间的双射 $f$: { '$a$','$b$', ... ,'$z$'} --> { '$a$','$b$', ... ,'$z$'}  ,定义对于字符串 $S$ 的一次递进操作为:先将 $S$ 循环左移 $x$ 位,再对 $S$ 的每个字符 $Sᵢ$ 应用 $y$ 次变换 $S'ᵢ=f(Sᵢ)$。
 现在对于所给出的 $x,y$、双射 $f$ 的值表 $F$ 和两个长度为 $n$ 的字符串 $S,T,$请求出最小的正整数 $k$,使得对 $S$ 做 $k$ 次递进操作的结果是 $T$。

输入格式

         输入的第 $1$ 行包含 $3$ 个整数 $n,x,y$。
         接下来 $1$ 行,包含 $1$ 个长度为 $26$ 的字符串 $F$,每个字符依次表示 $f('a') ,f('b') ... f('z')$.
         接下来 $1$ 行,包含 $1$ 个长度为 $n$ 的字符串 $S$。
         接下来 $1$ 行,包含 $1$ 个长度为 $n$ 的字符串 $T$。

输出格式

         输出包含 $1$ 行 $1$ 个正整数,表示所求 $k$ 的值。特别地,如果对 $S$ 进行任意多次的变换操作都不能得到 $T$, 输出 $1$ 行 $1$ 个 $-1$。

输入样例    复制

14 1 1
bcdefghijklmnopqrstuvwxyz
heavenburnsred
yhqexuqvuhgkhd

输出样例    复制

3

提示

         对字符串循环左移 $1$ 位是指将字符串的首个字符移动到末尾,循环左移 $x$ 位是指重复 $x$ 次循环左移 $1$ 位。例如, $heavenburnsred$ 循环左移 $6$ 位将得到 $burnsredheaven$, 循环左移 $14$ 位将得到 $heavenburnsred$。


         样例解释:
         对于样例 $1$, 对 $S$ 进行递进操作将依次得到: $fbwfocvsotsfei$、$cxgpdwtputgfjg$、$yhqexuqvuhgkhd$。