首页 > 其他分享 >【洛谷】P1914 小书童——凯撒密码

【洛谷】P1914 小书童——凯撒密码

时间:2024-11-20 12:19:19浏览次数:3  
标签:洛谷 小书童 小写字母 字母 P1914 50 密码 字符串

题目背景

某蒟蒻迷上了 “小书童”,有一天登陆时忘记密码了(他没绑定邮箱 or 手机),于是便把问题抛给了神犇你。

题目描述

蒟蒻虽然忘记密码,但他还记得密码是由一个字符串组成。密码是由原文字符串(由不超过 50 个小写字母组成)中每个字母向后移动 n 位形成的。z 的下一个字母是 a,如此循环。他现在找到了移动前的原文字符串及 n,请你求出密码。

输入格式

第一行 n。第二行:未移动前的一串字母。

输出格式

一行,是此蒟蒻的密码。

输入输出样例

输入 #1复制

1
qwe

输出 #1复制

rxf

说明/提示

字符串长度 ≤50,1≤n≤26。



#include <iostream>
using namespace std;
int main()
{
	int n, i;
	char A[50 + 1];		//预留\0的位置
	cin >> n >> A;		//输入n和原字符串
	for (i = 0; i < 50 + 1; i++)
	{
		if (A[i] >= 97 && A[i] <= 122)		//对字符串中的小写字母进行操作
		{
			while (A[i] + n > 122)		//如果后移n位后超出小写字母范围
				n = n - 26;		//那么n缩水一圈直至原小写字母后移n位后仍是小写字母
			A[i] = A[i] + n;		//逐一得到密码
		}
	}
	cout << A;		//输出密码
	return 0;
}

 该题主要是应先对n处理,不能先后移n位之后再考虑超出小写字母范围~

标签:洛谷,小书童,小写字母,字母,P1914,50,密码,字符串
From: https://blog.csdn.net/2401_86982397/article/details/143897081

相关文章

  • 洛谷题单指南-二叉堆与树状数组-P2161 [SHOI2009] 会场预约
    原题链接:https://www.luogu.com.cn/problem/P2161题意解读:本题前面形式化描述已经足够清晰。解题思路:要判断线段之间是否有冲突(包含或者交叉),可以借助set,参考:https://www.cnblogs.com/jcwy/p/18447333只不过这里要统计冲突的数量,也就是允许相等的元素重复存在,可以借助multiset......
  • 洛谷:P1008 [NOIP1998 普及组] 三连击
    这道题需要我们找出所有符合要求的数对,由于数据量不大,这里我们可以使用枚举的方法进行枚举,那么我们从最小的三位数100到最大数999进行遍历寻找,再对这三个数进行判断,判断这三个数的每一位是否由1-9这9个数组成,且每个数只出现一次。在判断这个地方我们可以用一个数组来进行计数,将......
  • 洛谷题单指南-二叉堆与树状数组-P5677 [GZOI2017] 配对统计
    原题链接:https://www.luogu.com.cn/problem/P5677题意解读:所谓好的配对,通过分析公式∣ax−ay∣≤∣ax−ai∣(i≠x),可以得知就是一个ax与其差的绝对值最小的形成的配对,在数轴上就是距离ax最近的点ay,配对是下标(x,y),给定若干个区间[l,r],每个区间的配对数*区间编号的累加。解题思路:......
  • 【题解】洛谷:P4805 [CCC2016] 合并饭团
    P4805[CCC2016]合并饭团希望写完这篇题解能真正地会这种题。合并两个的操作很像合并石子的操作,确实直接那么做就可以,但三个怎么办呢,暴力做法就是枚举中间两个端点然后转移,但是这样复杂度太大了有\(O(n^4)\)。于是搬出我们的双指针,在面对区间问题时双指针可以有效地解决问题,......
  • 洛谷P1816忠诚
    洛谷P1816忠诚思路查询区间最小值,\(ST\)表/线段树板子题代码#include<bits/stdc++.h>#defineendl'\n'#defineintlonglongconstintmaxn=2e5+5;constintinf=0x7f7f7f7f;structcustom_hash{ staticuint64_tsplitmix64(uint64_tx){ x^=......
  • 洛谷P2068统计和
    P2068统计和思路单点修改+区间查询线段树/树状数组板子题代码#include<bits/stdc++.h>#defineendl'\n'#defineintlonglong#definelowbit(x)x&-xconstintmaxn=5e5+5;constintinf=0x7f7f7f7f;structcustom_hash{ staticuint64_tsplitmix64......
  • 洛谷P5057简单题
    P5057[CQOI2006]简单题这是题面思路每次操作,直接区间加\(1\),最后求结果的时候对\(2\)取余就好了这个题就是区间修改+单点查询可以用树状数组或者线段数维护代码#include<bits/stdc++.h>#defineendl'\n'#defineintlonglong#definelowbit(x)x&-xconstint......
  • 洛谷题单指南-二叉堆与树状数组-P1908 逆序对
    原题链接:https://www.luogu.com.cn/problem/P1908题意解读:求逆序对,前面介绍过归并排序的做法,参考:https://www.cnblogs.com/jcwy/p/184077,这里介绍树状数组的做法。解题思路:设数组a[n]里的整数只包括1~n,显然对于此题,可以通过离散化得到这样的数组。要计算逆序对,就是要计算对于......
  • 小寄巧——给洛谷题单快速生成一份目录
    以此题单为例,首先我们在浏览器中打开,F12切换到Console,输入document.querySelectorAll(".titlea"),然后复制返回的所有内容,粘贴到VSCode里,内容大致如下:NodeList(15)[a.title.color-default,a.title.color-default,a.title.color-default,a.title.color-default,a.title......
  • 洛谷P3538 [POI2012] OKR-A Horrible Poem
    前言比较典,可以当模板题,故记录一下,写的可能比较水。题意Link长度为\(n\(\leq6\times10^5)\)的字符串,有\(q\(\leq2\times10^6)\)个询问,每次询问求一个区间的最小循环节。思路题面看起来很唬人,我们平时求最短循环节都是用前缀函数,这一放在区间上就不会做了。但实际......