POJ2818_密码

从抓包到防御:用Wireshark分析ARP欺骗的完整操作指南 本文详细介绍了如何使用Wireshark分析ARP欺骗攻击,从流量特征解析到高级分析技巧,再到构建Snort检测规则和Python自动化防御系统,提供了一套完整的操作指南。文章还涵盖了企业级防御方案和应急响应流程,帮助读者全面了解和防范ARP欺骗攻击。 阅读详情
总时间限制:
1000ms
内存限制:
65536kB
描述
Bob 和 Alice 开始使用一种全新的编码系统。它是一种基于一组私有钥匙的。他们选择了n个不同的数a1 , . . .,an, 它们都大于0小于等于n。 机密过程如下:待加密的信息放置在这组加密钥匙下,信息中的字符和密钥中的数字一一对应起来。信息中位于i位置的字母将被写到加密信息的第ai个位置, ai 是位于i位置的密钥。加密信息如此反复加密,一共加密 k 次。

信息长度小于等于n。如果信息比 n 短, 后面的位置用空格填补直到信息长度为n。

请你帮助 Alice 和 Bob 写一个程序,读入密钥,然后读入加密次数 k 和要加密的信息,按加密规则将信息加密。



输入
输入包括几块。每块第一行有一个数字n, 0 < n <= 200. 接下来的行包含n个不同的数字。数字都是大于0小于等于n的。下面每行包含一个k和一个信息字符串,它们之间用空格格开。每行以换行符结束,换行符不是要加密的信息。每个块的最后一行只有一个0。 最后一个块后有一行,该行只有一个0。
输出
输出有多个块,每个块对应一个输入块。每个块包含输入中的信息经过加密后的字符串,顺序与输入顺序相同。所有加密后的字符串的长度都是 n。 每一个块后有一个空行。
样例输入
10
4 5 3 7 2 8 1 6 10 9
1 Hello Bob
1995 CERC
0
0
样例输出
BolHeol  b
C RCE

暴力模拟会出错,要计算每个移位的循环周期,还要注意下标是从1开始的。
gets_s()函数在OJ系统不能通过,提交的时候记得把他改成gets.

#include<cstdio>
#include<cstring>
#include<string>
#include<cmath>
#include<algorithm>
#include<iostream>
using namespace std;
int n;           //密匙长度
char ans[220];    //加密后字符串
int a[220];      //密匙
int cir[220];    //循环节
char str[220];   //输入字符串
void calCir() { 
	//计算加密多少次最后导致的效果是相同的
	for (int i = 1; i <= n; ++i) {
		int nPos = i;    //第i个位置
		for (int j = 1; ; ++j) {   
			nPos = a[nPos];
			if (nPos == i) {
				cir[i] = j;
				break;
			}
		}
	}
}

//加密过程
void salt(int k) {
	strcpy(ans + 1, str + 1);
	for (int i = 1; i <= n; ++i) {
		int nTime = k % cir[i];  //循环次数
		int nPos = i;
		for (int j = 1; j <= nTime; ++j) {
			nPos = a[nPos];
		}
		ans[nPos] = str[i];
	}
	ans[n + 1] = '\0';    //变成字符串
}

int main()
{
	while (~scanf("%d", &n) && n) {

		for (int i = 1; i <= n; ++i) {
			scanf("%d", &a[i]);
		}
		calCir();
		int k;
		while (~scanf("%d",&k) && k)
		{
			getchar();
			gets_s(str+1, 220);    //提交的时候改成:gets(str+1)
			int L = strlen(str+1);
			for (int i = L; i < n; ++i) {
				str[i+1] = ' ';
			}
			str[n + 1] = '\0';
			salt(k);
			printf("%s\n", ans+1 );
		}
		printf("\n");

	}
	system("pause");
	return 0;
}
c语言编写的置换密码源代码 c语言编写的置换密码源代码 已经测试 可以运行 立即下载

相关推荐

EV1527 vs HS1527:固定码芯片的STM32解码避坑指南

本文深入解析EV1527与HS1527固定码芯片的技术差异,提供基于STM32的完整解码方案与稳定性优化策略。通过硬件接口配置、状态机实现及示波器诊断,解决工业遥控、安防报警等场景中的解码难题,特别针对时序差异和干扰问题给出实用解决方案。

o0p1q2r3的博客 329

poj2256人工智能?其实就是字符串处理啦

嗯这道题看题目好牛B的样子,实际上就是简单的字符串处理啦 首先是要读出一共有多少行 再对每一行进行处理,提取出U,I,P三项中的两项,计算第三项,代码比较简单也很好理解,贴在下面 #include #include #include #include using namespace std; int main() { int n = 0; string s; getline(

禛的专栏 400

QtNodeEditor实战:构建高效可视化编程环境的完整指南

本文是QtNodeEditor实战的完整指南,详细介绍了如何利用这一基于Qt框架的可视化编程工具构建高效节点编辑器。内容涵盖从快速集成、自定义节点模型到深入理解MVC数据流架构,并提供了样式定制、场景序列化、动态端口等高级功能的实现方法,帮助开发者快速搭建灵活、可维护的可视化编程环境。

lemon的博客 700

加密次数较多需要优化加密

http://poj.grids.cn/practice/2818 2818:密码 View Submit Statistics Clarify Time Limit: 1000ms Memory Limit: 65536kB Description Bob 和 Alice 开始使用一种全新的编码系统。它是一种基于一组私有钥匙的。他们选择了n个不同的数a1 ,

wyf5060060的专栏 679

Qt+OpenGL+Cesium三件套:打造高性能3D GIS界面的5个关键技巧

本文深入探讨了如何利用Qt、OpenGL与Cesium三件套打造高性能3D GIS界面的5个核心技巧。内容涵盖多线程渲染架构设计、OpenGL状态管理与批处理优化、内存与显存高效管理、Qt UI与3D场景深度集成,以及跨平台部署与性能调优实战,旨在帮助开发者解决海量3D Tiles数据渲染的性能瓶颈,实现流畅的交互体验。

t8u9v0的博客 549

CODESYS Softmotion(一)功能介绍

一、CODESYS SoftMotion RTE SL产品 1.1 CODESYS Runtime SL 产品家族介绍 目前支持的主流厂商的硬件产品,让部署在上面的成为实时设备。 对于Windows系统,根据需求选择对应的Runtime: RTE极大的提高了实时性,适合进行运动控制,同时RTE还支持了多个主从站协议: 还可以选择可选的功能(Single License): RTE对硬件和系统有要求,如果你需要硬件功能,那么网卡会有最低要求。 1.2 RTE的下载和安装 在官网http://codes

Fishfishfishfishcat 2万+

密码

总时间限制:  1000ms   内存限制:  65536kB 描述 Bob 和 Alice 开始使用一种全新的编码系统。它是一种基于一组私有钥匙的。他们选择了n个不同的数a1 , . . .,an, 它们都大于0小于等于n。 机密过程如下:待加密的信息放置在这组加密钥匙下,信息中的字符和密钥中的数字一一对应起来。信息中位于i位置的字母将被写到加密信息的第ai个位置, ai 是位于i位...

凤凰于飞 390

Unity+ARFoundation 探坑之路

前两天想要上手Unity来AR方面的项目东东 ,探索过程中出现了各种各样的问题,现在将这个过程中遇到的各种各样问题梳理一下,希望后来者能开开心心上手Unity+AR。 注意:这是一篇踩坑博客,具体搭建还请自行百度。 一、ARFoundation or ARCore or ARKit Unity作为一个平台,不直接提供XR(包括VR、AR和MR)的开发包,这时就需要其他公司提供各种各样的SDK工具包...

qq_43575926的博客 7134

详解RSA加密算法 | Java模拟实现RSA算法

本文旨在分析讲解RSA加密算法,并且用Java模拟实现

luming的博客 1289

实战对比:Lmcache+vllm将KVcache卸载到CPU和SSD的性能差异(附完整配置)

本文通过实战对比Lmcache与vLLM在KV Cache卸载到CPU和SSD的性能差异,详细解析了配置优化、基准测试及高级调优策略。实验显示,CPU卸载在低并发下表现优异,而SSD方案在高并发场景中更具性价比优势,为LLM推理任务提供了高效的存储解决方案。

weixin_30664051的博客 700

PLC模拟量输入电路设计:±10V与±20mA信号调理全解析

在工业自动化和数据采集系统中,模拟量输入是连接物理世界与数字控制的核心桥梁。无论是变送器输出的4-20mA电流环,还是伺服驱动与信号发生器提供的±10V电压信号,PLC和采集模块都需要在复杂现场环境下稳定、精准地完成信号采集。理解信号体制的原理——电流环抗长线干扰、电压环响应快——是设计模拟输入前端的基础。通过精密电阻网络实现分压与采样,利用运放完成双极性到单极性的电平搬移,配合TVS与滤波电路保障可靠性,并经过ADC量化与校准流程,最终构建出兼顾精度、成本和工业级鲁棒性的完整信号链路。本文面向硬件工程师与

weixin_29163797的博客 297

字母——数字密码

如果用数字1——26代表英文字母a--z,即1--a,2--b,以此类推……26——z;那么我们可以用数字来代表相应的单词。但是一个数字排列有多种可能,如123可能代表abc(1,2,3.),也可能代表lc(12,3),或者aw(1,23)要求编一个程序,计算出从键盘输入的每串数字可能代表的字母串的个数,输入0则程序结束如input:25114111111111133333333330output

郁郁思扬 6748

Netapp FAS2750热备盘替换失败问题分析与解决

本文深入分析了Netapp FAS2750存储系统中热备盘替换失败的故障现象,揭示了磁盘分区属主不匹配导致数据同步无法启动的根本原因。通过详细的排查步骤和解决方案,帮助运维人员快速恢复aggr状态,并提供了长期预防措施和最佳实践建议,确保存储系统的高可用性。

weixin_33737774的博客 399

poj 2818 密码

<br />//poj 2818 密码<br />//http://poj.grids.cn/problem/2818<br />//开始会超时,然后思路很乱,看了别人的代码,改了一下~~<br />//这道题因为k的值很大的话会运行很多次,导致超时<br />//所以,在输入时

jw72jw的专栏 2016

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

密码问题 POJ 2818

密码问题,一道比较经典的题目

小龙 2154

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

poj-2818-密码-C语言

来取答案的请收下: /************************************** **文件名:poj-2818 **Copyright (c) 2010-2020 OrdinaryCrazy **创建人:OrdinaryCrazy **日期:20170724 **描述:poj2818参考答案 **版本:1.0 **********************************

OrdinaryCrazy的博客 3107

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

POJ 2818:密码

总时间限制:  1000ms   内存限制:  65536kB 描述 Bob 和 Alice 开始使用一种全新的编码系统。它是一种基于一组私有钥匙的。他们选择了n个不同的数a1 , . . .,an, 它们都大于0小于等于n。 机密过程如下:待加密的信息放置在这组加密钥匙下,信息中的字符和密钥中的数字一一对应起来。信息中位于i位置的字母将被写到加密信息的第ai个位置, ai 是位于i位...

saber_sld的博客 530

POJ 2818 密码

时间限制:1000ms内存限制:65536kB描述Bob 和 Alice 开始使用一种全新的编码系统。它是一种基于一组私有钥匙的。他们选择了n个不同的数a1 , . . .,an, 它们都大于0小于等于n。 机密过程如下:待加密的信息放置在这组加密钥匙下,信息中的字符和密钥中的数字一一对应起来。信息中位于i位置的字母将被写到加密信息的第ai个位置, ai 是位于i位置的密钥。加密信息如此反...

weixin_30649859的博客 113

百炼OJ算法刷题:2818:密码

如果你正在刷模拟题,大概率会遇到这道题:POJ 2818 密码。题目描述不长,样例也简单,看起来就是“按照钥匙重排k次”。但我第一次做的时候,完全没想到要用循环节——不就是循环k次吗?为什么要找环?这篇文章记录了我从“直接模拟”到“置换群优化”的思维转变过程,希望能帮你理解这个经典套路。每个位置只在自己的环里转,互不干扰,环长就是周期。“每个位置只在自己的环里转”环与环之间没有交叉,位置0的字符永远不会跑到环B里去。“互不干扰”每个环独立计算,用各自的长度取模。“环长就是周期”

RNGYYDS111的博客 382

Bailian2818 密码【密码+置换】

2818:密码 总时间限制: 1000ms 内存限制: 65536kB 描述 Bob 和 Alice 开始使用一种全新的编码系统。它是一种基于一组私有钥匙的。他们选择了n个不同的数a1 , . . .,an, 它们都大于0小于等于n。 机密过程如下:待加密的信息放置在这组加密钥匙下,信息中的字符和密钥中的数字一一对应起来。信息中位于i位置的字母将被写到加密信息的第ai个位置, ai 是位于i位置的...

海岛Blog 837

百练 2818 密码

链接地址:http://poj.grids.cn/practice/2818/ 题目: 描述Bob 和 Alice 开始使用一种全新的编码系统。它是一种基于一组私有钥匙的。他们选择了n个不同的数a1 , . . .,an, 它们都大于0小于等于n。 机密过程如下:待加密的信息放置在这组加密钥匙下,信息中的字符和密钥中的数字一一对应起来。信息中位于i位置的字母将被写到加密信息的第ai个位置, a...

weixin_34344677的博客 145

百练(五~八)题解

百练(五) Bailian2679 整数的立方和【入门】 - 海岛Blog - 优快云博客 Bailian2699 自整除数【入门+进制】 - 海岛Blog - 优快云博客 Bailian2733 判断闰年【入门】(POJ NOI0104-17) - 海岛Blog - 优快云博客 Bailian3179 最长单词【字符串】 - 海岛Blog - 优快云博客 Bailian3237...

海岛Blog 2326

ACM——【百练习题备忘录】

1. 在做百练2807题:两倍时,错将判断语句写成 a/b ==2,正确写法是:a == b*2 因为C/C++int型做除法时自动舍入,如:5/2 == 2,但是 5 =/= 2*2。 2. 在做百练2715题:谁拿了最多奖学金时,一直Wrong Answer,最后才发现真的是自己算错了,在判断语句中>85写成了>80 3. 在做百练2713:肿瘤面积时,一...

weixin_33829657的博客 235

密码【找规律】

Bob 和 Alice 开始使用一种全新的编码系统。它是一种基于一组私有钥匙的。他们选择了n个不同的数a1 , . . .,an, 它们都大于0小于等于n。 机密过程如下:待加密的信息放置在这组加密钥匙下,信息中的字符和密钥中的数字一一对应起来。信息中位于i位置的字母将被写到加密信息的第ai个位置, ai 是位于i位置的密钥。加密信息如此反复加密,一共加密 k 次。 信息长度小于等于n。如果信息比 n 短, 后面的位置用空格填补直到信息长度为n。 请你帮助 Alice 和 Bob 写一个程序,读入密钥,然后

weixin_53745698的博客 880

常用的加密方式有哪些?

以在一定程度上增加难度,对于加了“固定盐”的HASH算法,需要保护“盐”不能泄露,据库中,这种是最简单的保存方式,也是最不安全的方式。3、使用MD5、SHA1等单向HASH算法保护密码,使用这些算法后,无法通过。2、使用对称加密算法来保存,比如3DES、AES等算法,使用这种方式加密是。用户密码,曾经这种方式也是比较安全的方式,但随着彩虹表技术的兴起,可以建立。4、特殊的单向HASH算法,由于单向HASH算法在保护密码方面不再安全,于。全性才足够高,该算法也是美国国家标准与技术研究院推荐使用的算法。

qq_73767908的博客 1217
上一篇: MST题目集合
下一篇: POJ2819_W的密码
softwareX4
博客等级 码龄9年 21粉丝 63原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值