P1079 [NOIP2012 提高组] Vigenère 密码------------------------------P1703 那个什么密码2

P1079 [NOIP2012 提高组] Vigenère 密码

题目描述

16 世纪法国外交家 Blaise de Vigenère 设计了一种多表密码加密算法 Vigenère 密码。Vigenère 密码的加密解密算法简单易用,且破译难度比较高,曾在美国南北战争中为南军所广泛使用。

在密码学中,我们称需要加密的信息为明文,用 M 表示;称加密后的信息为密文,用 C 表示;而密钥是一种参数,是将明文转换为密文或将密文转换为明文的算法中输入的数据,记为 k。在 Vigenère 密码中,密钥 k 是一个字母串,k=k1​,k2​,…,kn​。当明文 M=m1​,m2​,…,mn​ 时,得到的密文 C=c1​,c2​,…,cn​,其中ci​=mi​®ki​,运算 ® 的规则如下表所示:

Vigenère 加密在操作时需要注意:

1.® 运算忽略参与运算的字母的大小写,并保持字母在明文 M 中的大小写形式;

2.当明文 M 的长度大于密钥 k 的长度时,将密钥 k 重复使用。

输入格式

共 2 行。

第一行为一个字符串,表示密钥 k,长度不超过 100,其中仅包含大小写字母。

第二行为一个字符串,表示经加密后的密文,长度不超过 1000,其中仅包含大小写字母。

输出格式

一个字符串,表示输入密钥和密文所对应的明文。

输入输出样例

输入 #1

CompleteVictory
Yvqgpxaimmklongnzfwpvxmniytm

输出 #1

Wherethereisawillthereisaway

说明/提示

对于 100% 的数据,输入的密钥的长度不超过 100,输入的密文的长度不超过 1000,且都仅包含英文字母。

代码:

#include<iostream>
using namespace std;
int main()
{string k,C;//k表示密钥,C表示密文cin>>k;cin>>C;int j=0;string M=C;for(int i=0;i<C.size();i++){if(i%k.size()==0){j=0;}if(k[j]>='A'&&k[j]<='Z'){k[j]=k[j]+32;}if(C[i]>='A'&&C[i]<='Z'){C[i]=C[i]+32;}if((C[i]-k[j])>=0){C[i]=C[i]-k[j]+97;}else{C[i]=C[i]-k[j]+123;}if(M[i]>='A'&&M[i]<='Z'){C[i]=C[i]-32;}j++;}cout<<C;return 0;
} 

P1703 那个什么密码2

题目背景

原题为 上文----P1079 [NOIP2012 提高组] Vigenère 密码。

题目描述

与原题一模一样、具体不同请见输入格式

输入格式

第一行输入密钥

第二行输入明文

第三行输入一个正整数 M, 代表操作个数.

每个操作将 [a,b] 的字符全部倒转,比如 abc 倒转为 cba.

接下来 M 行,每行输入两个正整数 a, b。

输出格式

输出一行,输出密文。

输入输出样例

输入 #1

CompleteVictory
Wherethereisawillthereisaway
0

输出 #1

Yvqgpxaimmklongnzfwpvxmniytm

代码

#include<iostream>
#include<algorithm>
using namespace std;
int main()
{string m,k;//m表示密文,k表示密钥cin>>k>>m;int cnt=0;string t=m;for(int i=0;i<k.length();i++){if(k[i]>='A'&&k[i]<='Z'){k[i]=k[i]+32;//将密钥中的字符换成小写,方便计算}}for(int i=0;i<m.length();i++){if(m[i]>='A'&&m[i]<='Z'){m[i]=m[i]+32;将密文中的字符换穿小写,方便计算}if(m[i]+k[cnt]-'a'<=122) {m[i]=m[i]+k[cnt]-'a';//当添加密钥后需要移动的距离小于不会超过'z'	}else{m[i]='a'+(m[i]+k[cnt]-'a')%122-1;当添加密钥后需要移动的距离小于会超过'z'}cnt++;if(cnt==k.length()){cnt=0;}}for(int i=0;i<t.length();i++){if(t[i]>='A'&&t[i]<='Z'){m[i]=m[i]-32;}}
//	cout<<m;int pp,a,b;cin>>pp;for(int i=1;i<=pp;i++){cin>>a>>b;string x=m.substr(a-1,b-a+1);reverse(x.begin(),x.end());m.replace(a-1,b-a+1,x);}cout<<m;return 0;
} 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/143422.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

人工智能(AI)的影响下人类的生活样子

讨论在人工智能(AI)的影响下人类的生活是什么样子 在21世纪的今天&#xff0c;人工智能&#xff08;AI&#xff09;已经不再是遥不可及的未来科技&#xff0c;而是悄然渗透到我们日常生活的每一个角落&#xff0c;以一种前所未有的方式改变着我们的生活方式、工作模式乃至社会…

在表格的函数参数中使用通配符

条件&#xff1a;条件的形式为数字、表达式、单元格引用或文本&#xff0c;它定义了要计数的单元格范围。 例如&#xff0c;条件可以表示为32、">32"、B4、"apples"或"32"。 可以在条件中使用通配符&#xff0c;即问号(?)和星号(*)。问号匹…

Python编码系列—Python组合模式:构建灵活的对象组合

&#x1f31f;&#x1f31f; 欢迎来到我的技术小筑&#xff0c;一个专为技术探索者打造的交流空间。在这里&#xff0c;我们不仅分享代码的智慧&#xff0c;还探讨技术的深度与广度。无论您是资深开发者还是技术新手&#xff0c;这里都有一片属于您的天空。让我们在知识的海洋中…

7 种有助于压缩图像的最佳图像压缩工具

您的网站是否由于图像文件过大而表现不佳&#xff1f;现在是时候探索最适合您网站的图像压缩工具了。 影响页面加载速度的因素之一是需要更多资源来加载的庞大视觉对象&#xff0c;例如叠加图像。在这种情况下&#xff0c;您应该先压缩视觉对象&#xff0c;然后再将其上传到您…

什么护眼台灯性价比高又亮?五款性能好的护眼台灯推荐

现在不止是小孩子需要保护眼睛&#xff0c;而我们的成年人也是需要保护眼睛。因为现在上班压力大&#xff0c;下班回家加班也成了日常操作&#xff0c;每天用眼&#xff0c;对着电子产品的时间也会很久&#xff0c;眼睛会感到不舒服。回到家中&#xff0c;我们就需要一款好的护…

【2024华为杯研究生数学建模竞赛】比赛思路、代码、论文更新中.....

目录 赛中助攻华为杯常用建模算法&#x1f5d2;️&#x1f5d2;️历年优秀论文⭐⭐论文模板1&#xff09;论文模板2&#xff09;基础画图能力 绘图与数据分析软件SPSSPRO 2024研究生数学建模竞赛时间为9月21日&#xff08;周六&#xff09;8:00至9月25日&#xff08;周三&#…

HTML5精粹练习第1章博客

第1章博客 用最新的HTML5标签来联系博客 HTML文件&#xff1a;第1章博客.html <!DOCTYPE html> <html><head><meta charset"utf-8"><meta name"description" content"这是一个HTML5案例" /><meta name"…

香港科技大学工学院2025/2026年度硕士研究生(MSc)项目招生宣讲会——华南师范大学佛山校区

&#x1f514;香港科技大学工学院2025/2026年度硕士研究生&#xff08;MSc&#xff09;项目招生宣讲会 &#x1f559;时间&#xff1a;2024年9月26日&#xff08;星期四&#xff09;19:00 &#x1f3e0;地点&#xff1a;华南师范大学佛山校区图书馆电影院 &#x1f386;2024T…

【楚怡杯】职业院校技能大赛 “云计算应用” 赛项样题七

某企业根据自身业务需求&#xff0c;实施数字化转型&#xff0c;规划和建设数字化平台&#xff0c;平台聚焦“DevOps开发运维一体化”和“数据驱动产品开发”&#xff0c;拟采用开源OpenStack搭建企业内部私有云平台&#xff0c;开源Kubernetes搭建云原生服务平台&#xff0c;选…

ClickHouse 与 Quickwit 集成实现高效查询

1. 概述 在当今大数据分析领域&#xff0c;ClickHouse 作为一款高性能的列式数据库&#xff0c;以其出色的查询速度和对大规模数据的处理能力&#xff0c;广泛应用于在线分析处理 (OLAP) 场景。ClickHouse 的列式存储和并行计算能力使得它在处理结构化数据查询时极具优势&…

[atcoder agc 004 c] AND Grid

题目链接 题目简述 给定一个 H W H \times W HW 的网格图&#xff0c;有些位置已经被涂色。要求构造两个相同大小的网格图&#xff0c;并且在上面涂色&#xff0c;需要保证颜色四联通。满足这两个网格的涂色部分的重合位置恰好是给定的网格图的涂色位置。 题目保证边界上不…

《粮油仓储科技通讯》是什么级别的期刊?是正规期刊吗?能评职称吗?

​问题解答 问&#xff1a;《粮油仓储科技通讯》是不是核心期刊&#xff1f; 答&#xff1a;不是&#xff0c;是知网收录的第一批认定学术期刊。 问&#xff1a;《粮油仓储科技通讯》级别&#xff1f; 答&#xff1a;国家级。主管单位&#xff1a;中国储备粮管理集团有限公…

EA首席执行官:AI现在是“我们业务的核心”

EA 日前举办了投资者日活动&#xff0c;首席执行官 Andrew Wilson 谈到了该公司对生成式人工智能的投入。在直播演示中&#xff0c;Wilson 提到 EA的游戏一直处于技术曲线的最前沿&#xff0c;而不同形式的人工智能始终是该公司创意之旅的核心。 然后他解释说&#xff0c;这项技…

SPI中的CPOL和CPHA

SPI中的CPOL和CPHA学习SPI必须掌握的知识&#xff0c;因为它涉及到“数据位采集”。重点掌握空闲时SCK的电平是怎么定义的。采集时&#xff0c;是怎么规定发生在哪个时钟边沿。CPOL用来决定SPI总线在空闲时,SPI_SCK引脚输出的电平;CPHA用来决定“数据位采集点”发生在第几边沿。…

质量与数量的博弈!大模型数据建设

质量与数量的博弈&#xff01;大模型数据建设 前言大模型数据建设 前言 大数据和人工智能&#xff08;DataAI&#xff09;技术正以惊人的速度改变着我们的生活和工作方式。大模型数据建设作为人工智能领域的核心组成部分&#xff0c;其重要性日益凸显。 大模型数据建设涉及到海…

AI加持下的六大副业变现通道,总有一条适合你

经济下行&#xff0c;普通人应该尽早认清一个事实&#xff0c;没有一技之长&#xff0c;没有核心竞争力&#xff0c;即便是打工皇帝&#xff0c;年入百万也只是浮云。 一定要保证主业的稳定&#xff0c;再探索新的机会&#xff0c;要多从”1-10"&#xff0c;而不是反复”…

python-字符排列问题

题目描述 有 n 个字母&#xff0c;列出由该字母组成的字符串的全排列&#xff08;相同的排列只计一次&#xff09;。输入格式 第一行输入是字母个数 n 。 接下来一行输入的是待排列的 n 个字母。输出格式 计算出的 n 个字母的所有不同排列总数。样例输入输出样例输入 4 aacc样例…

Java项目实战II基于Java+Spring Boot+MySQL的大学城水电管理系统(源码+数据库+文档)

目录 一、前言 二、技术介绍 三、系统实现 四、论文参考 五、核心代码 六、源码获取 全栈码农以及毕业设计实战开发&#xff0c;CSDN平台Java领域新星创作者&#xff0c;专注于大学生项目实战开发、讲解和毕业答疑辅导。获取源码联系方式请查看文末 一、前言 前随着高等…

12.Java基础概念-面向对象-static

欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 Facts speak louder than words&#xff01; 一、static关键字的含义…

【JVM】垃圾回收机制|死亡对象的判断算法|垃圾回收算法

目录 1.找到谁是垃圾 1&#xff09;引用计数&#xff08;不是JVM采取的方式&#xff0c;而是Python/PHP的方案&#xff09; 2&#xff09;可达性分析&#xff08;是JVM采用的方案&#xff09; 2.释放对应的内存的策略 1&#xff09;标记-清除&#xff08;并不实用&#xf…