2818:密码
总时间限制: 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
来源
1026

问题链接:Bailian2818 密码
问题描述:(略)
问题分析
    这是一个密码编码计算题,通过置换计算密码。然而,直接通过置换计算进行模拟则容易造成TLE。置换计算有周期性,算出其循环周期,就可以使用模除来减少模拟次数。本题需要做k次置换,k值有可能很大。
程序说明
    本题与参考链接是同一题,使用参考链接的程序提交就AC了。
参考链接:POJ1026 Cipher【密码+置换】
题记:朋友交多了,容易遇见熟人。

AC的C语言程序如下:

/* POJ1026 Cipher */#include <iostream>
#include <stdio.h>
#include <string.h>using namespace std;const int N = 200;
int a[N], cycle[N];
char s[N + 1], ans[N + 1];int main()
{int n, k;while(~scanf("%d", &n) && n) {for(int i = 0; i < n; i++) {scanf("%d", &a[i]);a[i]--;}// 计算循环数组for(int i = 0; i < n; i++) {int cnt = 0, key = i;while(a[key] != i) cnt++, key = a[key];cycle[i] = cnt + 1;}while(~scanf("%d", &k) && k) {getchar();gets(s);for(int i = strlen(s); i < n; i++)s[i] = ' ';for(int i = 0; i < n; i++) {int t = i, ti = i;int times = k % cycle[i];            // 对字符s[i],进行times次变换for(int j = 0; j < times; j++) {t = a[ti];ti = t;}ans[t] = s[i];}ans[n] = '\0';printf("%s\n", ans);}printf("\n");}return 0;
}

Bailian2818 密码【密码+置换】相关推荐

  1. 【git】【eclipse】记住密码/密码保存在哪里?

    前言 eclipse 4.9.0 eclipse 的 git 插件 : eclipse 自带的 git 插件 EGit 记住密码 密码保存置 C:\Users\$USER\.eclipse\org.e ...

  2. github 修改密码密码_雇主要求提供GitHub密码。 如何处理呢?

    github 修改密码密码 此问题 最初匿名发布在Hashnode上 今天,我的雇主要求我提供我的GitHub密码. 这是我不愿透露的,尤其是因为我从事其他项目(工作之外)并且不愿意破坏任何人的数据. ...

  3. 如何取消Word文档保护密码(密码的破解方法)

    如何取消Word文档保护密码(密码的破解方法) Word-"取消文档保护"密码的破解方法 方法一(简单有效): 启动word 文档,新建一个空白文档,执行"插入文件&qu ...

  4. MobaXterm 忘记主密码 密码重置

    MobaXterm 忘记主密码 密码重置 MobaXterm 由于重新安装系统, 或者从一台电脑复制到另外一台电脑上/后,提示需要重新输入主密码(master password) 如果想不起来,可以想 ...

  5. 在计算机管理中创建不同的用户,为什么在计算机管理员里创建密码密码总是不符合要求...

    忘记管理员密码怎么办之第一招:删除sam文件 对sp3以前的工作组模式windows2000,删除winntsystem32config文件夹下的sam文件(无后缀)之后,本机所有用户丢失,用admi ...

  6. Navicat 查看密码 破解保存的密码 + 密码解密

    (baidu搜索的文章写的都不全,于是自己总结好写一个) 如果想要破解一个已经连接好的数据库密码,可以参考这个方法. 一.查看navicat保存的密码 1. 进入注册表 win + R 输入 rege ...

  7. Ubuntu20.04环境下MySQL8.0.30的 用户管理,设置修改密码,密码过期策略,权限管理,角色管理

    MySQL8.0.30 用户管理,设置修改密码,权限管理,角色管理 MySQL5.7可以 (创建用户,设置密码,授权) 一步到位

  8. 健忘症女友android密码,密码记混变乱码?华为Mate20密码保险箱根治健忘症!

    原标题:密码记混变乱码?华为Mate20密码保险箱根治健忘症! 随着时代的不断进步,手机不仅满足了大家的通讯需求,社交.支付.娱乐也通通能在手机上一站式搞定,虽然方便了工作和生活,但也徒增了我记忆密码 ...

  9. PostgreSQL查询用户密码密码解密修改密码

    1.切换用户 postgres su postgres 2.登录postgres psql 3.查看用户信息和密码 SELECT rolname,rolpassword FROM pg_authid; ...

  10. 设为首页收藏本站 切换到宽版 Android开发论坛 - 安卓开发论坛 - Android开发 - 安卓论坛 用户名 自动登录 找回密码 密码 注册 人人连接登陆 用新浪微博连接

              电梯直达 楼主 发表于 2011-12-20 17:57:23 | 只看该作者 | 倒序浏览 一键分享 一:不同的layout Android手机屏幕大小不一,有480x320, ...

最新文章

  1. pytorch: Variable detach 与 detach_
  2. 心中有火,前方有光,致敬所有智能车后浪
  3. python hdfs初体验
  4. 信息提醒之对话框(AlertDialog + ProgressDialog)-更新中
  5. js window.onlload 自遐想
  6. @dalao help!!!
  7. 福禄克网络TIA识别MPTL连接的操作方法
  8. day3-python学习笔记(三)字典、元组
  9. Angular实现悬浮球组件
  10. echarts asp mysql 源码_如何使用PHP+jQuery+MySQL实现异步加载ECharts地图数据(附源码下载)...
  11. Ubuntu添加swap分区
  12. 利用CUTFTP Tranfer Engine开发.NET FTP客户端
  13. 【Asp.Net】GridView控件中Datakeys和DataKeyNames的说明
  14. [软件工程] 数据字典
  15. sim868 c++二次开发基本完成
  16. 点燃创业引擎的天使投资
  17. idea中TKK: 更新 TKK 失败,请检查网络连接
  18. fastlane 上传到蒲公英和Fir 配置
  19. python selenium+firefox 使用已打开的火狐浏览器进行操作(不需要每次都重新打开火狐)
  20. 制作大白菜装系统U盘以及重装系统

热门文章

  1. 简书bug:不支持复制粘贴纯文本
  2. 2018计算机二级c知识,2018全国计算机二级考试C语言常考知识点归纳
  3. oracle——监听(二、sqlplus连接数据库)
  4. AR+LBS街景实景红包PokemonGo游戏捉妖夺宝营销解决方案定制开发暨百度高德地图Unity插件SDK
  5. 老挑毛 win7 linux,图解老挑毛u盘启动工具怎么重装系统
  6. Java定时任务中间表,mysql 通过定时任务更新中间表
  7. 【java学习之路】(java SE篇)013.lambda表达式
  8. 教师空间中html是指什么,教师空间个性签名
  9. 5导出word_妙招技法 | 教你如何快速导出Word文档中的图片
  10. 微型计算机控制课程设计,《微型计算机控制技术》课程设计