POJ2819_W的密码

单片机通过蜂鸣器播放任意音乐代码实现(2):音乐单片机代码自动生成 单片机通过蜂鸣器播放任意音乐代码实现(2):音乐单片机代码自动生成 上一节我们已经构建了基于51单片机的蜂鸣器音乐播放环境,接下来只需要手动或者自动添加音乐代码便能实现不同音乐的播放。当然,第二节将告诉你如何自动生成这些音乐代码。 所用软件 MuseScore 3;用于转换MID文件为musicxml文件 C/C++ IDE(本文为Visual Studio 2019) 1.生成音乐对应的MID文件 可以直接下载mid格式音乐文件,也可以将某段音乐转换为MID文件。最好是直接使用mid格式音乐文件,可 阅读详情

POJ2819 W的密码

总时间限制:
1000ms
内存限制:
65536kB
描述
加密一条信息需要三个整数码, k1, k2 和 k3。字符[a-i] 组成一组, [j-r] 是第二组, 其它所有字符 ([s-z] 和下划线)组成第三组。 在信息中属于每组的字符将被循环地向左移动ki个位置。 每组中的字符只在自己组中的字符构成的串中移动。解密的过程就是每组中的字符在自己所在的组中循环地向右移动ki个位置。
例如对于信息 the_quick_brown_fox 以ki 分别为 2, 3 和 1蔼进行加密。加密后变成 _icuo_bfnwhoq_kxert。下图显示了右旋解密的过程。



观察在组[a-i]中的字符,我们发现{i,c,b,f,h,e}出现在信息中的位置为{2,3,7,8,11,17}。当k1=2右旋一次后, 上述位置中的字符变成{h,e,i,c,b,f}。下表显示了经过所有第一组字符旋转得到的中间字符串,然后是所有第二组,第三组旋转的中间字符串。在一组中变换字符将不影响其它组中字符的位置。



所有输入字符串中只包含小写字母和下划线(_)。所有字符串最多有偿服务0个字符。ki 是1-100之间的整数。
输入
输入包括一到多组数据。每个组前面一行包括三个整数 k1, k2 和 k3,后面是一行加密信息。输入的最后一行是由三个0组成的。
输出
对于每组加密数据,输出它加密前的字符串。
样例输入
2 3 1
_icuo_bfnwhoq_kxert
1 1 1
bcalmkyzx
3 7 4
wcb_mxfep_dorul_eov_qtkrhe_ozany_dgtoh_u_eji
2 4 3
cjvdksaltbmu
0 0 0


样例输出
the_quick_brown_fox
abcklmxyz
the_quick_brown_fox_jumped_over_the_lazy_dog
ajsbktcludmv

题目分析

把一句话中的字符分成三组,这三组各自移位只会移到自己所在组中成员的位置,不会破坏其他组的顺序,因此先求出每个组元素的个数、在字符串中下标,最后用mod循环移位。
AC代码如下

#include <iostream>
#include <cstring>
#include<cmath>
#include<stdio.h>
using namespace std;

int a2i[210]; int asize;
int j2r[210]; int jsize;
int s2z[210]; int ssize;
char source[210];
char ans[210]; 
int L;
int k1, k2, k3;
void init() {
	for (int i = 0; i < L; ++i) {
		a2i[i] = j2r[i] = s2z[i] = 0;
	}
	asize = jsize = ssize = 0;
	for (int i = 0; i < L; ++i) {
		if (source[i] >= 'a' && source[i] <= 'i')
			a2i[asize++] = i;
		if (source[i] >= 'j' && source[i] <= 'r')
			j2r[jsize++] = i;
		if (source[i] >= 's' && source[i] <= 'z' || source[i] == '_')
			s2z[ssize++] = i;
	}
	return;
}

void salt() {
	for (int i = 0; i < asize; ++i) {
		ans[a2i[(i + k1) % asize]] = source[a2i[i]];
	}
	for (int i = 0; i < jsize; ++i) {
		ans[j2r[(i + k2) % jsize]] = source[j2r[i]];
	}
	for (int i = 0; i < ssize; ++i) {
		ans[s2z[(i + k3) % ssize]] = source[s2z[i]];
	}
	ans[L] = '\0';
}


int main()
{
	while (scanf("%d%d%d",&k1,&k2,&k3) && k1 && k2 && k3)
	{
		scanf("%s", source);
		L = strlen(source);
		init();
		salt();
		printf("%s\n", ans);
	}
	system("pause");
	
	return 0;
}

题目不难理解。。就是太长了。。下次希望能自己读懂题意

国科大学习资料--遥感原理集图像处理(尤红建)--2019年期末考试 国科大学习资料–遥感原理集图像处理(尤红建)–2019年期末考试 国科大学习资料–遥感原理集图像处理(尤红建)–2019年期末考试 国科大学习资料–遥感原理集图像处理(尤红建)–2019年期末考试 ================================================================== ================================================================== ============== 阅读详情

相关推荐

CLCD土地覆盖数据在ArcGIS中的实战应用:从导入到空间分析的完整指南

本文详细介绍了CLCD土地覆盖数据在ArcGIS中的实战应用,从数据导入到空间分析的完整流程。涵盖坐标系转换、数据质量检查、土地利用变化检测等核心技术,并分享城市扩张模拟和跨数据集融合等高级应用技巧,帮助研究者高效利用这一权威数据集进行环境监测和城市规划。

weixin_29292535的博客 590

C++程序练习-W的密码-模拟题

描述 加密一条信息需要三个整数码, k1, k2 和 k3。字符[a-i] 组成一组, [j-r] 是第二组, 其它所有字符 ([s-z] 和下划线)组成第三组。 在信息中属于每组的字符将被循环地向左移动ki个位置。 每组中的字符只在自己组中的字符构成的串中移动。解密的过程就是每组中的字符在自己所在的组中循环地向右移动ki个位置。 例如对于信息 the_quick_brown_fox 以ki ...

jinghuainfo 394

因果推断综述-A Survey on Causal Inference

最近读到一篇讲述很全面的综述文献-《A Survey on Causal Inference》,对于接触因果推断不久的同学而言是特别详细的介绍和科普。文献很长,我会分成几部分介绍。 目录 摘要 第一部分:简介 第二部分:因果推断基础知识 第三部分:基于三种假设的因果推断方法 第四部分:实验 第五部分:应用 摘要 几十年来,因果推理是一个跨许多领域的关键研究主题,如统计、计算机科学、教育、公共政策和经济学。与随机对照试验相比,研究方向由于可用数据量大且预算要求低,如今,从观测数据..

海边凝望的博客 3182

详解W形状的栅栏密码

最近做密码学题目的时候碰到了一个特别的栅栏密码:加密后为:ccehgyaefnpeoobe{lcirg}epriec_ora_g,由题目得知密钥为5,在网上用普通的解码器只会得到一个令人黑人问号的字符串,在网上找题解的时候才知道这叫W形栅栏密码。 话说我在网上搜资料的时候没有搜到太多与这有关的东西,本来想做一个不动脑子的伸手党。。。。现实却在逼迫我不得不去思考。。。。我这算第一个写这个的人不[手动...

YUK_103的博客 9071

WangEditor 5.0版本dangerouslyInsertHtml方法的正确使用方式

WangEditor 5.0版本dangerouslyInsertHtml方法的正确使用方式

yang1067155909的专栏 4290

智能问数产品背后的Agent技术揭秘:从任务分解到工具调用的完整流程

本文深入解析智能问数产品背后的Agent技术,从任务分解到工具调用的完整流程。通过大模型驱动的语义理解和动态工具调度,Agent系统能高效处理复杂数据分析需求,显著提升响应速度和准确率。文章详细介绍了模块化架构、任务分解机制、动态工具调用及双通道记忆系统等核心技术,展示了大模型时代的新型数据分析范式。

weixin_30399821的博客 438

C++实验题21 破解简单密码

假设老王原来一个BBS上的密码为zvbo941987,为了方便记忆,他通过一种算法把这个密码变换成YUANzi1987,这个密码是他的名字和出生年份,怎么忘都忘不了,而且可以明目张胆地放在显眼的地方而不被别人知道真正的密码。,就这么简单,老王把密码中出现的小写字母都变成对应的数字,数字和其他的符号都不做变换,声明:密码中没有空格,而密码中出现的大写字母则边成小写之后往后移一位,如:X,先边成小写,再往后移一位,不就是y了嘛,简单吧。输入包括多个测试数据,输入是一个明文,密码长度不超过80个字符。

m0_73876538的博客 2159

cartographer错误终结者 ordered_multi_queue.cc:155 Queue waiting for data

错误描述 错误提示的感应器数据可能是: Queue waiting for data:(0, points2) Queue waiting for data:(0, odom) 说明在提供给cartographter的传感器数据出现了问题,没有被成功解析。 原因分析 小编是使用自己编写的odom话题发布时,cartographer爆出了该错误。 于是设想传感器数据相关的tf或lua配置或数据本身存在错误。 于是逐个排查,最终发现了错误原因。 排查可能原因:tf错误 小编之前已处理过tf与lua配置的问题 参

人工智能机器人 4157

Centos 7 安装mysql5.7数据库

1. 安装YUM Repo # 下载yum repo wget https://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm # 安装repo rpm -ivh mysql57-community-release-el7-9.noarch.rpm 2. 安装mysql-server # 安装mysql-server可能会很慢,有解决方案 yum install mysql-server # 启动mysql systemctl

hu27 395

告别效率低谷:用ADS仿真手把手教你设计高回退Doherty功放(附1:2非对称案例)

本文详细解析了如何使用ADS仿真设计高回退Doherty功放,特别针对1:2非对称架构进行深入探讨。通过优化功率分配比、峰值管开启阈值等关键参数,显著提升功放在9dB回退点的效率至75%以上,适用于LTE等高PAPR信号场景。文章还提供了ADS仿真环境搭建、参数优化及工程化设计的实用技巧。

weixin_33743248的博客 453

推荐系统(十六):基于ESMM的商品召回/推荐系统

ESMM(Entire Space Multi-Task Model)是阿里巴巴提出的多任务学习框架,通过联合建模点击率(CTR)和点击转化率(CVR)解决传统CVR模型样本稀疏问题。其核心思想是将 CVR 定义为 CTR 与 CTCVR 的条件概率,模型包含两个子任务。

Jin_Kwok的博客 1265

PAT甲级1035Password(密码)详细题解C++

本题我们可以通过使用一个结构体存储变量,然后对密码进行暴力循环,从而判断是否有对应需要修改的字符,输出对应答案。需要注意最后输出的单数和复数形式,笔者在这里被坑惨了。

m0_56011305的博客 623

OpenClaw实战系列03:Slack/Telegram国际版接入实战指南

在当今的软件开发和工作流自动化中,将项目管理工具与即时通讯平台集成已成为提高团队协作效率的关键。OpenClaw作为一个开源的自动化工具,通过接入Slack和Telegram国际版,可以实现实时通知、自动化任务触发和团队协作的无缝对接。本文将详细介绍如何实现OpenClaw与这两个主流即时通讯平台的集成。OpenClaw是一个开源的自动化工作流引擎,支持多种触发器和执行器,能够帮助开发团队实现CI/CD流程、任务调度、监控告警等自动化场景。模块化设计:支持插件化扩展多触发器支持。

PeterPan的博客 586

poj 2819 W密码

2819:W的密码  Time Limit:  1000ms  Memory Limit:  65536kB Description 加密一条信息需要三个整数码, k1, k2 和 k3。字符[a-i] 组成一组, [j-r] 是第二组, 其它所有字符 ([s-z] 和下划线)组成第三组。 在信息中属于每组的字符将被循环地向左移动ki个位置。 每组中的字符只

jeg_elsker_dig的专栏 1501

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

【poj2819】W的密码

描述加密一条信息需要三个整数码, k1, k2 和 k3。字符[a-i] 组成一组, [j-r] 是第二组, 其它所有字符 ([s-z] 和下划线)组成第三组。 在信息中属于每组的字符将被循环地向左移动ki个位置。 每组中的字符只在自己组中的字符构成的串中移动。解密的过程就是每组中的字符在自己所在的组中循环地向右移动ki个位置。 例如对于信息 the_quick_brown_fox 以ki 分别为...

wifi_hu的博客 437

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

POJ 百炼 保研机试 2819:W的密码

2819:W的密码 查看提交统计提示提问 总时间限制: 1000ms 内存限制: 65536kB 描述加密一条信息需要三个整数码, k1, k2 和 k3。字符[a-i] 组成一组, [j-r] 是第二组, 其它所有字符 ([s-z] 和下划线)组成第三组。 在信息中属于每组的字符将被循环地向左移动ki个位置。 每组中的字符只在自己组中的字符构成的串中移动。解

u013240812的专栏 865

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

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

百练 2819 W的密码 解题报告

1.Link:http://poj.grids.cn/practice/2819/ 2.content 总时间限制:1000ms内存限制:65536kB描述加密一条信息需要三个整数码, k1, k2 和 k3。字符[a-i] 组成一组, [j-r] 是第二组, 其它所有字符 ([s-z] 和下划线)组成第三组。 在信息中属于每组的字符将被循环地向左移动ki个位置。 每组中的字符只在自己组中的字...

weixin_33725270的博客 236

Bailian2819 W的密码【密码+模拟】

2819:W的密码 总时间限制: 1000ms 内存限制: 65536kB 描述 加密一条信息需要三个整数码, k1, k2 和 k3。字符[a-i] 组成一组, [j-r] 是第二组, 其它所有字符 ([s-z] 和下划线)组成第三组。 在信息中属于每组的字符将被循环地向左移动ki个位置。 每组中的字符只在自己组中的字符构成的串中移动。解密的过程就是每组中的字符在自己所在的组中循环地向右移动ki...

海岛Blog 822

百练(九~十二)题解

百练(九) Bailian2801 填词 POJ1629 ZOJ1546 Fillword【排序】 - 海岛Blog - 优快云博客 Bailian4134 查找最接近的元素【二分查找】 - 海岛Blog - 优快云博客 Bailian2760 数字三角形【DP】 - 海岛Blog - 优快云博客 Bailian4148 生理周期【枚举+中国剩余定理】 - 海岛Blog - 优快云...

海岛Blog 1038

C++练习题——密码安全等级划分

题目:密码按如下规则进行计分,并根据不同的得分为密码进行安全等级划分。 一、密码长度: 5 分: 小于等于4 个字符 10 分: 5 到7 字符 25 分: 大于等于8 个字符 二、字母: 0 分: 没有字母 10 分: 全都是小(大)写字母 20 分: 大小写混合字母 三、数字: 0 分: 没有数字 10 分: 1 个数字 20 分: 大于1 个数字 四、符号: 0 分: 没有符号 10 分: ...

山雨的博客 1092

C++练习题-设计一个密码检测程序

// // t06.cpp // C++PLUS // // Created by mac on 2019/12/10. // Copyright © 2019 mac. All rights reserved. // #include <stdio.h> #include<iostream> #include<string> using name...

BLOG OF PETERMAOSX. 1774

C++第4章第2题:移位密码-解密

已知加密过程为:将每个字母按照字母表的顺序右移k位。加密函数:E(m)=(m+k)%26. (明文 -> 密文) 现给你一串密文,全部由大写字母组成。请破译出明文!(密文 -> 明文) 请设计实现PassWord类: classPassWord{ private: intk; public: PassWord(int); charconvert(constchar);//解密函数 }; 输入描述 第一行包含一个整数k,代表乘法密码的密钥,0 ...

. 3018

W的密码

描述 加密一条信息需要三个整数码, k1, k2 和 k3。字符[a-i] 组成一组, [j-r] 是第二组, 其它所有字符 ([s-z] 和下划线)组成第三组。 在信息中属于每组的字符将被循环地向左移动ki个位置。 每组中的字符只在自己组中的字符构成的串中移动。解密的过程就是每组中的字符在自己所在的组中循环地向右移动ki个位置。  例如对于信息 the_quick_brown_fox 以ki...

凤凰于飞 1450

2819:W的密码

总时间限制: 1000ms 内存限制: 65536kB 描述加密一条信息需要三个整数码, k1, k2 和 k3。字符[a-i] 组成一组, [j-r] 是第二组, 其它所有字符 ([s-z] 和下划线)组成第三组。 在信息中属于每组的字符将被循环地向左移动ki个位置。 每组中的字符只在自己组中的字符构成的串中移动。解密的过程就是每组中的字符在自己所在的组中循环地向右移动ki个位置。

homer12的专栏 907

poj 百练 2819(基础题)

数组循环移位算法?? 是一个需要掌握的问题! 注意 先RA了一次, 只有在特定类型字符长度不等于0的时候才移位   if (j1 != 0)    RightShift(ai, j1, k1);   if (j2 != 0)    RightShift(jr, j2, k2);   if (j3 != 0)    RightShift(sz, j3, k3); #includ

cfzjxz的专栏 766
上一篇: POJ2818_密码
下一篇: POJ 2804_词典
softwareX4
博客等级 码龄9年 21粉丝 63原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值