Matrix67的情书
【问题描述】

  恺撒大帝曾经使用过这样一种加密术:对于明文中的每个字母,恺撒大帝会用它后面的第t个字母代替。例如,当t=3时,字母A将变成C,字母B将变成D,……,字母Y将变成A,字母Z将变成B(假设字母表是循环的)。

  这样一来,字母表:A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
       将变成:C D E F G H I J K L M N O P Q R S T U V W X Y Z A B

  明文:I Love You 将加密为密文:K Nqxg Aqw

  如此一来,需要传达的信息在外人看来就如同天书了。加上恺撒大帝会不时更换t的值,使得密码变得更加难以捉摸。

  后人称这种加密方法为“恺撒移位密码”

  有消息称:Matrix67找到了自己的Miss Right,正准备自己人生的第一次表白。Matrix67已经写好了情书,但为了避免其它人截获,他打算采用古来的恺撒移位密码进行加密。

  你通过某种渠道获知了Matrix67的加密方式。为了打探Matrix67的私密,你冒着生命危险终于搞到了这封情书。原以为可以轻易将情书解密,结果竟然发现聪明的Matrix67并没有直接写出加密用的t值,而是在那粉红色的信纸背面写着“t=你的幸运数字”。

  就这么放弃了吗?不,作为一个高智商的OIer,你决不轻言放弃。你需要编写一个解密程序,在不知道t值的情况下将原文打印出来。

【输入格式】

  输入一段文字。文字中可能包含字母、数字、标点符号、空格、回车、制表符等各种符号,其中只有字母被加密处理过。加密后的字母其大小写不变。

【输出格式】

  你的程序需要在不知道t值的情况下解密输入文件并输出明文。我们的明文保证是成章的英文段落,没有语法和单词拼写错误。

【输入样例】

K YKNN UJQY AQW

Agu, K co uvknn cocbgf vjcv K jcxg aqw. Kv’u uvknn jctf vq wpfgtuvcpf jqy aqw ejqug og. Jqy chvgt lwuv qpg ujqtv eqpxgtucvkqp aqw mpgy K ycu ogcpv hqt aqw. Dwv pqy K mpqy vjg vtwvj qh aqwt eqpxkevkqp. K’xg pgxgt dggp ykvj uqogqpg yjq uwkvgf og uq rgthgevna. Aqw ugfwegf og ykvj aqwt ugza dqfa cpf uvtqpi urktkv, cpf aqw’xg mgrv og ykvj aqwt vgpfgt jgctv. K mpqy aqw vjcv K ecp’v jcxg aqw eqorngvgna cpf ocadg pqv gxgp hqt owej nqpigt. Dwv K’o uvknn jcrra. C rctv qh aqw jcu dgeqog rctv qh og cpf vjcv ku gpqwij.

Aqw’nn ncwij yjgp K uca vjku, dwv K ftgco cdqwv aqw gxgta pkijv. Rtqdcdna dgecwug K ecp’v ugg aqw qhvgp gpqwij. Dwv yjgp K’o cycmg K mpqy vjcv aqw ctg vjg hwtvjguv vjkpi htqo c ftgco. Uqogvkogu K kocikpg vjcv aqw ctg dwknv htqo uqnkf tqem: c oqxkpi uvcvwg cpf cp kpfguvtwevkdng jwocp dgkpi. Aqw cduqnwvgna eqpvckp aqwtugnh cpf vjgp cickp owej oqtg vjcp aqwtugnh. Aqwt eqphkfgpeg ku eqpuwokpi cpf aqwt rgturgevkxg ku jwig. Aqw jcxg pq rnceg kp aqwt nkhg hqt lgcnqwua qt eqornckpvu. Oa htkgpfu uggo uq uocnn kp eqorctkuqp, ykvj vjgkt rtqdngou cnycau urknnkpi qxgt qpvq gxgtaqpg gnug.

K ycpv aqw vq mpqy jqy owej aqw’xg qrgpgf oa gagu cpf jgnrgf og vtwna ugg oaugnh. Wpvkn pqy, oa nkhg jcu dggp cp wpfgekfgf dcem-cpf-hqtvj, cpf pqy K mpqy vjcv K’xg ycuvgf vqq owej vkog. Dwv pqy oa fktgevkqp uggou engct, cpf K jcxg eqphkfgpeg kp oa hwvwtg. Vjg rcuv fqgup’v uggo vq ocvvgt cpaoqtg. Aqw’xg ocfg og ugg rquukdknkvkgu K yqwnf pgxgt jcxg kocikpgf dghqtg.

Agu, K ycpv vq rngcug aqw. Dwv kv’u vjtqwij rngcukpi aqw vjcv K’nn dgeqog c dgvvgt cpf uvtqpigt rgtuqp. Vjgtg ku pqvjkpi K ycpv oqtg vjcp vq vtcpuhqto oaugnh vjtqwij aqw. Aqw ejcnngpig og vq itqy dgaqpf oaugnh cpf ngcxg oa ygcmgt ugnh dgjkpf. K yknn ujqy aqw jqy dgcwvkhwn K ecp dg, cpf K yknn ujqy aqw jqy dtknnkcpv K ecp dgeqog. Vjku yca, K mpqy K’nn cnycau jcxg aqwt nqxg.

Hqtgxgt aqwtu,

Ocvtkz67

【输出样例】

I WILL SHOW YOU

Yes, I am still amazed that I have you. It’s still hard to understand how you chose me. How after just one short conversation you knew I was meant for you. But now I know the truth of your conviction. I’ve never been with someone who suited me so perfectly. You seduced me with your sexy body and strong spirit, and you’ve kept me with your tender heart. I know you that I can’t have you completely and maybe not even for much longer. But I’m still happy. A part of you has become part of me and that is enough.

You’ll laugh when I say this, but I dream about you every night. Probably because I can’t see you often enough. But when I’m awake I know that you are the furthest thing from a dream. Sometimes I imagine that you are built from solid rock: a moving statue and an indestructible human being. You absolutely contain yourself and then again much more than yourself. Your confidence is consuming and your perspective is huge. You have no place in your life for jealousy or complaints. My friends seem so small in comparison, with their problems always spilling over onto everyone else.

I want you to know how much you’ve opened my eyes and helped me truly see myself. Until now, my life has been an undecided back-and-forth, and now I know that I’ve wasted too much time. But now my direction seems clear, and I have confidence in my future. The past doesn’t seem to matter anymore. You’ve made me see possibilities I would never have imagined before.

Yes, I want to please you. But it’s through pleasing you that I’ll become a better and stronger person. There is nothing I want more than to transform myself through you. You challenge me to grow beyond myself and leave my weaker self behind. I will show you how beautiful I can be, and I will show you how brilliant I can become. This way, I know I’ll always have your love.

Forever yours,

Matrix67

【样例解释】

时间限制:1秒 内存限制:64M

【来源】

Matrix67原创

这是一道涉及到密码学的题,想要算出移了多少位,首先要统计文章中个字母出现的次数,出现得最多的即为原文中的‘e’字母(不要问为什么,自行百度)。接下来就很好做了,将字母循环移位,再输出对应的原文。

#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<vector>
#include<algorithm>
#include<queue>
#include<cstring>
#define maxn 50005
using namespace std;
int a[1005],n;
int aa[300],bb[300];
vector<char>p;
char ch;void task()
{for(int i='a';i<='z';i++)aa[i+26]=aa[i-26]=aa[i]=i;for(int i='A';i<='Z';i++)bb[i+26]=bb[i-26]=bb[i]=i;
}void out(char c)
{if(isupper(c)) printf("%c",bb[c-n]);else printf("%c",aa[c-n]);
}int main()
{//freopen("in.txt","r",stdin);//freopen("out.txt","w",stdout);while((ch=getchar())!=EOF){if(isalpha(ch)) a[ch]++;p.push_back(ch);}int e,ee=0;for(int i=1;i<=1000;i++)if(a[i]>ee) {e=i;ee=a[i];}n=e-'e';task();for(int i=0;i<p.size();i++){if(isalpha(p[i])) out(p[i]);else putchar(p[i]);}return 0;
}

Matrix67的情书 题解 恺撒移位密码相关推荐

  1. Caesar(恺撒)密码加密解密-----Java实现

    Caesar密码是传统的代替加密法,当没有发生加密(即没有发生移位)之前,其置换表如1-1所示. 表1-1  Caesar置换表 a b c d e f g h i j k l m A B C D E ...

  2. 湖南大学21夏训练四20.恺撒Caesar密码

    [问题描述] Julius Caesar 生活在充满危险和阴谋的年代.为了生存,他首次发明了密码,用于军队的消息传递.假设你是Caesar 军团中的一名军官,需要把Caesar 发送的消息破译出来.并 ...

  3. 4.20. 恺撒Caesar密码

    [问题描述] Julius Caesar 生活在充满危险和阴谋的年代.为了生存,他首次发明了密码,用于军队的消息传递.假设你是Caesar 军团中的一名军官,需要把Caesar 发送的消息破译出来.并 ...

  4. 4.20 恺撒Caesar密码

    [问题描述] Julius Caesar 生活在充满危险和阴谋的年代.为了生存,他首次发明了密码,用于军队的消息传递.假设你是Caesar 军团中的一名军官,需要把Caesar 发送的消息破译出来.并 ...

  5. 恺撒Caesar密码

    题目描述 [问题描述] Julius Caesar 生活在充满危险和阴谋的年代.为了生存,他首次发明了密码,用于军队的消息传递.假设你是Caesar 军团中的一名军官,需要把Caesar 发送的消息破 ...

  6. 密码学之恺撒加密(03)

    恺撒加密 文章目录 恺撒加密 一.中国古代加密 二.外国加密 三.凯撒位移加密 四.凯撒加密和解密 五.频度分析法破解恺撒加密 密码棒 频率分析解密法 英文字母频率统计表: 以下是本篇文章正文内容 一 ...

  7. 【JS】设计并实现“恺撒密码”

    问题描述 移位数N=3和7时,分别加密并恢复一段文字,例如"Peace and Love". 要求:(不)区分大小写,但能识别空格.标点: 恺撒密码是古罗马时代经常使用的一种经典加 ...

  8. 题目 1214: 恺撒密码

    时间限制: 1Sec 内存限制: 128MB 题目描述:(原题链接) 恺撒生活在充满危险和阴谋的时代. 恺撒面对的最困难的问题是生存. 为了生存, 他决定创造一种密码. 这种密码听起来难以置信, 如果 ...

  9. Python练习:恺撒密码 I

    练习:恺撒密码 I 平台:Python123.io 教师:嵩天 描述 凯撒密码是古罗马凯撒大帝用来对军事情报进行加解密的算法,它采用了替换方法对信息中的每一个英文字符循环替换为字母表序列中该字符后面的 ...

  10. 移位密码(凯撒密码)

    一.移位密码(凯撒密码) 移位密码是一种简单的加密方法,它通过将明文中的每个字符按照一定规则向左或向右移动若干位来生成密文.移位密码通常使用偏移量来确定每个字符移动的位数. 二.加密解密 1. 移位加 ...

最新文章

  1. R语言按组聚合求和实战(sum a variable by group):使用aggregate函数按组聚合求和、使用tapply函数按组聚合求和、按组聚合求和(使用dplyr包)
  2. 丢人现眼……GitHub阿波罗11号代码仓库惨遭中文灌水
  3. 赛门铁克:“高度怀疑”WannaCry的幕后黑手是朝鲜
  4. Spring扫描类过程解析和案例
  5. Linux下 运行Jmeter (含一个jmeter简单示例)
  6. 使用BufferedImage进行渐变色操作
  7. Qt笔记-Q3DScatter及QCustom3DItem的基本使用
  8. 如何切换svn用户?
  9. Criteria和DetachedCriteria区别应用
  10. 马斯克:全力支持狗狗币主要持有者出售货币 持仓太集中是问题
  11. 使用异步任务加载网络上的图片
  12. Kubernetes之配置与自定义DNS服务
  13. 数字电子技术基础(十三):时序逻辑电路(状态机)(移位寄存器、计数器、信号发生器)
  14. 用html和CSS做个人简历
  15. Miller_Rabin(米勒拉宾)素数测试
  16. 数字经济下,银行线上场景化建设的服务颗粒度、用户忠诚度和生态融合度
  17. OSChina 周五乱弹 —— 生命诚可贵,改 BUG 价更高?
  18. phpwind database.php,解决phpwind帖子列表显示个数不正确
  19. 网页跳转(APP内/浏览器)
  20. [深度学习] - 网络模型训练过程的 loss 变化分析 (loss / val_loss / test_loss)

热门文章

  1. 09SpringBoot web 错误处理
  2. mocha——单元测试
  3. 计算几何基础--线段的性质
  4. [554]sklearn提供的自带的数据集(make_blobs)
  5. MATLAB写入文件的操作
  6. 【CSDN|每日一练】走楼梯
  7. 程序员月薪过7万,可以落户北京了
  8. java url链接超时_Java编程中HttpURLConnection的连接超时中的异常
  9. 在kindle上阅读网络小说的正确方法——Kindle网文助手
  10. 环境光传感器--OPT3001,硬件开发与程序设计