题目描述

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”(不含引号,注意首字母大

写,其它小写)。

否则请输出利用密码翻译电报中加密信息后得到的原信息。

输入输出样例

输入样例#1:

AA
AB
EOWIE

输出样例#1:

Failed

输入样例#2:

QWERTYUIOPLKJHGFDSAZXCVBN
ABCDEFGHIJKLMNOPQRSTUVWXY
DSLIEWO

输出样例#2:

Failed

输入样例#3:

MSRTZCJKPFLQYVAWBINXUEDGHOOILSMIJFRCOPPQCEUNYDUMPP
YIZSDWAHLNOVFUCERKJXQMGTBPPKOIYKANZWPLLVWMQJFGQYLL
FLSO 

输出样例#3:

NOIP

说明

【输入输出样例 1 说明】

原信息中的字母‘A’和‘B’对应相同的密字,输出“Failed”。

【输入输出样例 2 说明】

字母‘Z’在原信息中没有出现,输出“Failed”。

NOIP 2009 提高组 第一题

思路:

  大模拟,不多说了

来,上代码:

#include<map>
#include<cstdio>
#include<cstring>
#include<iostream>using namespace std;int len_s,len_w;char start[150],pass_word[150],wait_work[150];bool if_in_1[200];map<char,bool>if_in;
map<char,char>from_to;int main()
{cin>>start;cin>>pass_word;cin>>wait_work;len_s=strlen(start),len_w=strlen(wait_work);for(int i=0;i<len_s;i++){if(!if_in[start[i]]){if(!if_in_1[pass_word[i]]){from_to[start[i]]=pass_word[i];if_in[start[i]]=true;if_in_1[pass_word[i]]=true;}else{cout<<"Failed"<<endl;return 0;}}else{if(!if_in_1[pass_word[i]]){cout<<"Failed"<<endl;return 0;}if(from_to[start[i]]!=pass_word[i]){cout<<"Failed"<<endl;return 0;}}}for(int i='A';i<='Z';i++){if(!if_in[i]){cout<<"Failed"<<endl;return 0;}}for(int i=0;i<len_w;i++){if(if_in[wait_work[i]]) wait_work[i]=from_to[wait_work[i]];else{cout<<"Failed"<<endl;return 0;}}for(int i=0;i<len_w;i++) putchar(wait_work[i]);putchar('\n');return 0;
}

转载于:https://www.cnblogs.com/IUUUUUUUskyyy/p/6057509.html

AC日记——潜伏者 洛谷 P1071 (模拟)相关推荐

  1. 信息学奥赛一本通 1855:【09NOIP提高组】潜伏者 | OpenJudge NOI 1.7 11:潜伏者 | 洛谷 P1071 [NOIP2009 提高组] 潜伏者

    [题目链接] ybt 1855:[09NOIP提高组]潜伏者 OpenJudge NOI 1.7 11:潜伏者 洛谷 P1071 [NOIP2009 提高组] 潜伏者 [题目考点] 1. 字符串 2. ...

  2. AC日记——传染病控制 洛谷 P1041

    传染病控制 思路: 题目想问的是: 有一棵树: 对于除1外每个深度可以剪掉一棵子树: 问最后剩下多少节点: 题目意思一简单,这个题立马就变水了: 搜索就能ac: 数据有为链的情况,按深度为层次搜索的话 ...

  3. AC日记——中位数 洛谷 P1168

    题目描述 给出一个长度为N的非负整数序列A[i],对于所有1 ≤ k ≤ (N + 1) / 2,输出A[1], A[2], -, A[2k - 1]的中位数.[color=red]即[/color] ...

  4. AC日记——魔方 洛谷 P2007

    魔方 思路: 模拟: 代码: #include <cstdio> #include <cstring> #include <iostream> #include & ...

  5. AC日记——独木桥 洛谷 p1007

    题目背景 战争已经进入到紧要时间.你是运输小队长,正在率领运输部队向前线运送物资.运输任务像做题一样的无聊.你希望找些刺激,于是命令你的士兵们到前方的一座独木桥上欣赏风景,而你留在桥下欣赏士兵们.士兵 ...

  6. 洛谷P1071 潜伏者 字符串

    洛谷P1071 潜伏者 字符串 题意 给出一段密文,在给出一段明文,再给出一段密文,要求破译这段密文, 如果错误的话就输出 Failed 错误有一下几种 密文中A--Z 没有全部出现 明文中A--Z ...

  7. 洛谷 P1071 潜伏者

    P1071 潜伏者 题目描述 R 国和 S 国正陷入战火之中,双方都互派间谍,潜入对方内部,伺机行动.历尽艰险后,潜伏于 S 国的 R 国间谍小 C 终于摸清了 S 国军用密码的编码规则: 1. S ...

  8. 潜伏者与谍报密码(洛谷P1071题题解,Java语言描述)

    题目要求 P1071题目链接 分析 这道题其实要构建唯一的双射,开始没读明白,写出了下面的代码: import java.util.HashMap; import java.util.Map; imp ...

  9. 洛谷——P1071 潜伏者

    题目描述 RR国和SS国正陷入战火之中,双方都互派间谍,潜入对方内部,伺机行动.历尽艰险后,潜伏于SS国的RR 国间谍小CC终于摸清了 SS 国军用密码的编码规则: 1. SS国军方内部欲发送的原信息 ...

最新文章

  1. python零基础怎么学-零基础如何入门Python
  2. 截取指定内容/截取用逗号隔开的各个关键字
  3. 详解网络摄像机中的IR-CUT
  4. P1141 01迷宫(BFS+记忆化)
  5. 熊猫python_Python库-------熊猫
  6. Android开发之原生定位的方法(GPS,网络定位)
  7. VC跨进程数据(结构体)传递-WM_COPYDATA
  8. redis笔记_源码_简单动态字符串SDS
  9. Anaconda 安装教程(Win10环境) Tensorflow安装
  10. java docker client_Docker Client (another java docker client api)
  11. 这10个比较好用的服务器管理软件你都知道吗?
  12. 解读《美国国家BIM标准》 – BIM能力成熟度模型 (七)
  13. [Unity]如果AssetStore的下载无效怎么办
  14. Spring Cloud Bus消息总线
  15. 丰田生产方式(TPS)的本质
  16. ecu故障现象_汽车重要传感器的常见故障及表现,出现这些问题可能是传感器损坏...
  17. [读书笔记]《Hands on Design Patterns with C++》—— CRTP
  18. 【调剂】2023年江西科技师范大学电子科学与技术硕士点 “光电检测与信息处理”课题组硕士招生...
  19. 2015年十大IT趋势 云计算占榜首
  20. IBM人工智能驱动的隐形恶意软件工具DeepLo​​cker

热门文章

  1. 点击复制公众号按钮_96编辑器如何复制文章到公众号发布?
  2. aix oracle调整逻辑卷的大小,AIX上增加逻辑卷时报错误0516-787 extendlv: Maximum allocation for logical volume(示例代码)...
  3. linux与Windows查看路由
  4. numeric比较大小 数据库_Liquibase 数据库版本管理工具:3. changeSet 变更集详解
  5. select count(*) from返回值_MySQL 优化:count(1)真的比count(*)快吗
  6. 最速下降法极小化rosenbrock函数 代码_典型算法思想与应用9|分支限界法与电路布线问题
  7. Python 语言程序设计(5-2)七段数码管程序编写设计
  8. 1概率论与数理统计_浙江大学B站
  9. liunxs运维_Linux运维工程师必备(命令)
  10. 人工智能语言python招聘_编程语言这么多为什么选Python