背景
此“暗算”非彼《暗算》,虽然我们没有电影中阿柄惊人的听力,可以辨别破译密码,但是我们也可以成为破译专家。
现在就来给大家作一个集训:
改变阿拉伯字母的顺序是文本加密中十分常用的方法,但是并不安全。也就是说,把文本中的每一个阿拉伯字母都要一致地替换成一些其他的字母。为了保证加密的可逆性,需要每个阿拉伯字母都有唯一一个替换的字母(也就说,任意两个阿拉伯字母都不可以用同一个字母来替换)。
最有效的密码分析方法就是“已知明文攻击(known-plaintext attack)”法。在此种方法中,密钥专家掌握着敌方加密的短语或语句,然后通过观察这些加密文字从而推导出译码的方法。
你现在的任务就是来破译几行加密的文本,这些文本是用一条密钥加密的,即某一行加密前就是密钥本身。密钥是一个包含了全部 26 个英文字母的字符串,譬如在“暗算 1.0”中,使用的密钥是:
the quick brown fox jumps over the lazy dog
不过一个固定的密钥实在是太容易破译了,只要掌握了规律,就不太费劲。为了能够保证信息的安全性,我们决定在此次集训中,使用可变化的密钥。也就是说,每一组测试用例,都包含着自己的密钥。
输入
首先是单独一个正整数用来说明测试的组数,后边跟着一行字符串,这行字符串就是这次测试用例所使用的密钥。再接着是一个空白行。而且,连续两组测试之间也有一个空白行。
每组测试有多行输入组成。加密的方式如上所示。加密的文本行只包含有小写字母和空格,而且长度不超过 80 个字符。最多有 100 条输入的文本行。
输出
对应每组测试, 解密每一行的信息,并且把标准输出打印出来。如果有多于一种的解密方法,那么任何一种都可以。如果没有解密的方法,则输出信息“No solution.”
每两组测试输出之间必须用一个空白行分隔开。
来源
http://online-judge.uva.es/p/v8/850.html
例如:
输入:
-
1↵
-
thequickbrownfoxjumpsoverthelazydog↵
-
↵
-
vtzudxnmxugmitrpyyjttkgmvxtotgmxtxnmpuktixnmfprxq↵
-
xnmceuoblrtzvitahegfdtsmrxnmypwqktj↵
-
frtjrpgguvjotvxmdxdprmievprmvxxnmq↵
输出:
-
nowisthetimeforallgoodmentocometotheaidoftheparty↵
-
thequickbrownfoxjumpsoverthelazydog↵
-
programmingcontestsarefunarentthey↵
分享到:
相关推荐
这款应用程序的版本号为1.0,它基于ACM(Audio Class 2.0)标准,以提供稳定且高效的通信。 【描述】中的“三星、夏新数据线驱动WMC ACM 1.0 App下载”指明了该应用的主要功能和适用范围。三星和夏新作为知名的电子...
《ACM8625调音软件和评估板使用指南》 ACM8625调音软件是一款专为苏州至盛半导体的ACM8625芯片设计的工具,用于优化音频系统的性能和调音效果。配合评估板,用户可以进行详细的音频参数设置和功能测试,以实现最佳...
某已退役的acm选手的算法模板,欢迎大家来学习交流并提出您宝贵的意见。
标题中的"CDC-ACM.rar_CDC-ACM_V2 _cdc acm"指的是一个针对Linux操作系统的USB抽象控制模型(CDC-ACM)驱动程序的更新版本V2.13.6。这个驱动程序专门用于支持USB调制解调器和ISDN适配器,使得这些设备能够在Linux...
### ACM程序设计基础知识点 #### 一、ACM竞赛概览 - **组织机构与活动**: 本课程由东北林业大学陈宇老师负责,通过邮箱Lg_chenyu@yahoo.com.cn进行联系。课程的主要目的是介绍ACM程序设计的基础概念及入门技巧。 - ...
【标题】"ACM.rar" 是一个压缩文件,其中包含了与 ACM(国际大学生程序设计竞赛,简称ACM)相关的学习资料。"ACM_ACM Hwang .p" 暗示了这个压缩包可能包含由 ACM 专家 Hwang 教授的一些教程或讲义,这些材料通常对...
在IT领域,ACM(Abstract Control Module)串口驱动是一种重要的接口技术,它允许通过USB(Universal Serial Bus)连接来模拟传统的串行通信接口。在本文中,我们将深入探讨高通和MTK平台上的ACM串口驱动以及如何...
上海交通大学ACM模板是针对计算机科学领域中算法竞赛和考研复试机试的重要参考资料,它集成了许多编程竞赛中常用的数据结构、算法以及解题策略。这个压缩包包含了一个名为"上海交大ACM模板.pdf"的文件,我们可以期待...
【标题】"acm试题答案acm" 涉及的主要知识点是ACM(国际大学生程序设计竞赛,International Collegiate Programming Contest,简称ICPC或ACM/ICPC)的解题策略与技巧,以及如何寻找和理解比赛题目答案。ACM是一项...
《浙大ACM竞赛编程资源解析》 在编程竞赛领域,特别是ACM(国际大学生程序设计竞赛)中,浙江大学的在线判题系统——浙大ACM(acm.zju.edu.cn),也被称为浙大OJ(Online Judge)网站,是众多参赛者磨练技艺的重要...
ACM PRO ACM PROACM PRO ACM PROACM PRO ACM PRO
ACM(Association for Computing Machinery)程序设计大赛是全球范围内一项极具影响力和权威性的大学生编程竞赛,由美国计算机协会(ACM)主办。国际大学生程序设计竞赛(ICPC,International Collegiate ...
【ACM简介与竞赛概述】 ACM,全称Association for Computing Machinery,是计算机科学领域最历史悠久、最具权威的国际组织,成立于计算机技术诞生后的第二年。它的主要目标是推动计算机科学的发展,促进学术交流和...
这个压缩包文件“ACM题集_ACM训练题集_超多ACM题集汇总_解题源码”显然是一个集合,包含了大量ACM竞赛相关的题目和已经解决的源代码,对于学习和准备ACM比赛的学员来说是宝贵的资源。 在ACM竞赛中,参赛队伍需要...
在Java编程领域,ACM(Association for Computing Machinery)常常与算法竞赛相关,因为ACM国际大学生程序设计竞赛(ICPC)广泛使用Java作为比赛语言之一。"acm.jar" 文件通常包含了一些为这类竞赛设计的预封装的...
"acmacm经典题库"是一个专门为ACM(国际大学生程序设计竞赛,International Collegiate Programming Contest)参赛者准备的学习资源集合。ACM竞赛是全球范围内影响力极大的编程比赛,旨在提升大学生的算法设计、问题...
ACM各种练习题ACM各种练习题ACM各种练习题ACM各种练习题ACM各种练习题ACM各种练习题ACM各种练习题ACM各种练习题ACM各种练习题ACM各种练习题ACM各种练习题ACM各种练习题ACM各种练习题ACM各种练习题ACM各种练习题ACM...
EFM32系列微控制器是Silicon Labs推出的一款针对能效敏感型应用的32位MCU,其内部包含了一个模拟比较器模块ACMP,该模块是片上集成的模拟电压比较器。ACMP模块在低功耗模式下能够保持运行,因此对于需要电池供电的...
本篇文章将深入探讨ACM(Audio Compression Manager)音频格式及其转换过程,特别是涉及ACM与PCM、WAV等格式之间的转换。 ACM是Windows操作系统内置的一种音频编码/解码管理框架,它支持多种音频编码算法,包括但不...
ACM(American Computer Science League)是一个致力于计算机科学教育和竞赛的组织,特别是为学生提供算法竞赛的机会。在编程竞赛中,ACM jar包通常包含了用于运行和评测参赛者代码的库,这些库提供了输入/输出处理...