洛谷 P1071 潜伏者
P1071 潜伏者
题目描述
R 国和 S 国正陷入战火之中,双方都互派间谍,潜入对方内部,伺机行动。历尽艰险后,潜伏于 S 国的 R 国间谍小 C 终于摸清了 S 国军用密码的编码规则:
1. S 国军方内部欲发送的原信息经过加密后在网络上发送,原信息的内容与加密后所得的内容均由大写字母‘A’-‘Z’构成(无空格等其他字符)。
2. S 国对于每个字母规定了对应的“密字”。加密的过程就是将原信息中的所有字母替换为其对应的“密字”。
3. 每个字母只对应一个唯一的“密字”,不同的字母对应不同的“密字”。“密字”可以和原字母相同。
例如,若规定‘A’的密字为‘A’,‘B’的密字为‘C’(其他字母及密字略),则原信息“ABA”被加密为“ACA”。
现在,小 C 通过内线掌握了 S 国网络上发送的一条加密信息及其对应的原信息。小 C希望能通过这条信息,破译 S 国的军用密码。小 C 的破译过程是这样的:扫描原信息,对于原信息中的字母 x(代表任一大写字母),找到其在加密信息中的对应大写字母 y,并认为在密码里 y 是 x 的密字。如此进行下去直到停止于如下的某个状态:
1. 所有信息扫描完毕,‘A’-‘Z’ 所有 26 个字母在原信息中均出现过并获得了相应的“密字”。
2. 所有信息扫描完毕,但发现存在某个(或某些)字母在原信息中没有出现。
3. 扫描中发现掌握的信息里有明显的自相矛盾或错误(违反 S 国密码的编码规则)。例
如某条信息“XYZ”被翻译为“ABA”就违反了“不同字母对应不同密字”的规则。
在小 C 忙得头昏脑涨之际,R 国司令部又发来电报,要求他翻译另外一条从 S 国刚刚截取到的加密信息。现在请你帮助小 C:通过内线掌握的信息,尝试破译密码。然后利用破译的密码,翻译电报中的加密信息。
输入输出格式
输入格式:
共 3 行,每行为一个长度在 1 到 100 之间的字符串。
第 1 行为小 C 掌握的一条加密信息。
第 2 行为第 1 行的加密信息所对应的原信息。
第 3 行为 R 国司令部要求小 C 翻译的加密信息。
输入数据保证所有字符串仅由大写字母‘A’-‘Z’构成,且第 1 行长度与第 2 行相等。
输出格式:
共 1 行。
若破译密码停止时出现 2,3 两种情况,请你输出“Failed”(不含引号,注意首字母大
写,其它小写)。
否则请输出利用密码翻译电报中加密信息后得到的原信息。
输入输出样例
AA AB EOWIE
Failed
QWERTYUIOPLKJHGFDSAZXCVBN ABCDEFGHIJKLMNOPQRSTUVWXY DSLIEWO
Failed
MSRTZCJKPFLQYVAWBINXUEDGHOOILSMIJFRCOPPQCEUNYDUMPP YIZSDWAHLNOVFUCERKJXQMGTBPPKOIYKANZWPLLVWMQJFGQYLL FLSO
NOIP
说明
【输入输出样例 1 说明】
原信息中的字母‘A’和‘B’对应相同的密字,输出“Failed”。
【输入输出样例 2 说明】
字母‘Z’在原信息中没有出现,输出“Failed”。
NOIP 2009 提高组 第一题
思路:模拟。
#include<cstdio> #include<cstring> #include<iostream> #include<algorithm> using namespace std; int ans=0; char a[10000],b[10000],c[10000],d[10000]; char e[26]={'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'}; int main(){gets(a);gets(b);gets(c);int len1=strlen(a);int len3=strlen(c);for(int i=0;i<len1;i++)for(int j=0;j<26;j++)if(a[i]==e[j]) ans++;if(ans<26){ cout<<"Failed"; return 0; }for(int i=0;i<len1;i++)for(int j=0;j<len1;j++)if(a[i]==a[j]&&b[i]!=b[j]||a[i]!=a[j]&&b[i]==b[j]){cout<<"Failed"; return 0; }for(int i=0;i<len1;i++){int s=0;for(int j=0;j<len1;j++)if(a[i]==b[j]) s=1;if(s==0){ cout<<"Failed"; return 0; }}for(int i=0;i<len3;i++)for(int j=0;j<len1;j++)if(c[i]==a[j]) d[i]=b[j];for(int i=0;i<len3;i++)cout<<d[i]; }
转载于:https://www.cnblogs.com/cangT-Tlan/p/8035183.html
洛谷 P1071 潜伏者相关推荐
- 洛谷P1071 潜伏者 字符串
洛谷P1071 潜伏者 字符串 题意 给出一段密文,在给出一段明文,再给出一段密文,要求破译这段密文, 如果错误的话就输出 Failed 错误有一下几种 密文中A--Z 没有全部出现 明文中A--Z ...
- 洛谷——P1071 潜伏者
题目描述 RR国和SS国正陷入战火之中,双方都互派间谍,潜入对方内部,伺机行动.历尽艰险后,潜伏于SS国的RR 国间谍小CC终于摸清了 SS 国军用密码的编码规则: 1. SS国军方内部欲发送的原信息 ...
- (Java实现) 洛谷 P1071 潜伏者
题目描述 R国和 S国正陷入战火之中,双方都互派间谍,潜入对方内部,伺机行动.历尽艰险后,潜伏于 S国的 R 国间谍小 C终于摸清了 S 国军用密码的编码规则: 1. S 国军方内部欲发送的原信息经过 ...
- 信息学奥赛一本通 1855:【09NOIP提高组】潜伏者 | OpenJudge NOI 1.7 11:潜伏者 | 洛谷 P1071 [NOIP2009 提高组] 潜伏者
[题目链接] ybt 1855:[09NOIP提高组]潜伏者 OpenJudge NOI 1.7 11:潜伏者 洛谷 P1071 [NOIP2009 提高组] 潜伏者 [题目考点] 1. 字符串 2. ...
- 潜伏者与谍报密码(洛谷P1071题题解,Java语言描述)
题目要求 P1071题目链接 分析 这道题其实要构建唯一的双射,开始没读明白,写出了下面的代码: import java.util.HashMap; import java.util.Map; imp ...
- 潜伏者(洛谷-P1071)
题目描述 R 国和 S 国正陷入战火之中,双方都互派间谍,潜入对方内部,伺机行动.历尽艰险后,潜伏于 S 国的 R 国间谍小 C 终于摸清了 S 国军用密码的编码规则: 1. S 国军方内部欲发送的原 ...
- AC日记——潜伏者 洛谷 P1071 (模拟)
题目描述 R 国和 S 国正陷入战火之中,双方都互派间谍,潜入对方内部,伺机行动.历尽艰险后,潜伏于 S 国的 R 国间谍小 C 终于摸清了 S 国军用密码的编码规则: 1. S 国军方内部欲发送的原 ...
- 洛谷 - 试炼场(全部题目备份)
整理的算法模板合集: ACM模板 目录 1.新手村 1 - 1 洛谷的第一个任务 1 - 2 顺序与分支 1 - 3 循环!循环!循环! 1 - 4 数组 1 - 5 简单字符串 1 - 6 过程函数 ...
- 洛谷-题解 P2672 【推销员】
独门思路!链表加优先队列! 这题一望,贪心是跑不掉了,但是我贪心并不好,所以想到了一个复杂一些但思路更保稳的做法 思路: 1 因为是离线操作,所以我们可以倒着求,先求x=n的情况,因为那样直接就知道了 ...
最新文章
- 吊打 ThreadLocal,谈谈FastThreadLocal为啥能这么快?
- GRDB自定义的纯函数
- webbench 代码阅读
- python语言入门e_python 语言学入门第一课必看:编码规范
- 命名空间“Microsoft.AspNet”中不存在类型或命名空间名“Mvc”
- Kotlin实战指南四:区间
- seleniumpython定位网页元素方法_使用Selenium对网页元素进行定位的诸种方法
- oracle 查询结果升序,Oracle学习日志-8(查询结果排序)
- 利用linux的mtrace命令定位内存泄露(Memory Leak)
- 台式机dp接口_2K至4K显示器性价比线材选购攻略,毕亚兹 DP高清线入手
- python 会议室预约系统解决方案_会议预约管理系统解决方案
- edge浏览器,无法继续下载,提示检测到病毒的问题
- Linux基础命令的那些事儿(1)
- 华为鸿蒙系统新闻点评,关于华为鸿蒙操作系统,品牌专家是这样点评的
- iPhone录音转文字怎么操作?手把手教你详细流程
- 重磅!22张深度学习精炼图笔记总结!
- java中如果int类型超出了它的范围
- SQL Server研习录(08)——LEFT()函数
- 计算机专业女生掉发,女生经常掉头发是什么原因有哪些
- Android文档及学习资料整理 【至2011年7月】
热门文章
- CAS5.3.14安装、配置完全教程
- 使用vscode删除markdown空行
- docker容器内部使用vim
- 请解释为什么集合类没有实现Cloneable和Serializable接口?
- Spring Cloud Stream整合RabbitMQ
- Scala Case类和对象
- python 数学建模、时间戳_python-在matplotlib中绘制Unix时间戳
- ubuntu c++ 实现自动回车键功能_从X86到ARM,实现C和C++语言90% Code自动迁移
- Linux下Cpabe Toolkit安装教程
- python(matplotlib7)——subplot 一个figure中国显示几个小图 分格显示