AC日记——潜伏者 洛谷 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<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 (模拟)相关推荐
- 信息学奥赛一本通 1855:【09NOIP提高组】潜伏者 | OpenJudge NOI 1.7 11:潜伏者 | 洛谷 P1071 [NOIP2009 提高组] 潜伏者
[题目链接] ybt 1855:[09NOIP提高组]潜伏者 OpenJudge NOI 1.7 11:潜伏者 洛谷 P1071 [NOIP2009 提高组] 潜伏者 [题目考点] 1. 字符串 2. ...
- AC日记——传染病控制 洛谷 P1041
传染病控制 思路: 题目想问的是: 有一棵树: 对于除1外每个深度可以剪掉一棵子树: 问最后剩下多少节点: 题目意思一简单,这个题立马就变水了: 搜索就能ac: 数据有为链的情况,按深度为层次搜索的话 ...
- AC日记——中位数 洛谷 P1168
题目描述 给出一个长度为N的非负整数序列A[i],对于所有1 ≤ k ≤ (N + 1) / 2,输出A[1], A[2], -, A[2k - 1]的中位数.[color=red]即[/color] ...
- AC日记——魔方 洛谷 P2007
魔方 思路: 模拟: 代码: #include <cstdio> #include <cstring> #include <iostream> #include & ...
- AC日记——独木桥 洛谷 p1007
题目背景 战争已经进入到紧要时间.你是运输小队长,正在率领运输部队向前线运送物资.运输任务像做题一样的无聊.你希望找些刺激,于是命令你的士兵们到前方的一座独木桥上欣赏风景,而你留在桥下欣赏士兵们.士兵 ...
- 洛谷P1071 潜伏者 字符串
洛谷P1071 潜伏者 字符串 题意 给出一段密文,在给出一段明文,再给出一段密文,要求破译这段密文, 如果错误的话就输出 Failed 错误有一下几种 密文中A--Z 没有全部出现 明文中A--Z ...
- 洛谷 P1071 潜伏者
P1071 潜伏者 题目描述 R 国和 S 国正陷入战火之中,双方都互派间谍,潜入对方内部,伺机行动.历尽艰险后,潜伏于 S 国的 R 国间谍小 C 终于摸清了 S 国军用密码的编码规则: 1. S ...
- 潜伏者与谍报密码(洛谷P1071题题解,Java语言描述)
题目要求 P1071题目链接 分析 这道题其实要构建唯一的双射,开始没读明白,写出了下面的代码: import java.util.HashMap; import java.util.Map; imp ...
- 洛谷——P1071 潜伏者
题目描述 RR国和SS国正陷入战火之中,双方都互派间谍,潜入对方内部,伺机行动.历尽艰险后,潜伏于SS国的RR 国间谍小CC终于摸清了 SS 国军用密码的编码规则: 1. SS国军方内部欲发送的原信息 ...
最新文章
- python零基础怎么学-零基础如何入门Python
- 截取指定内容/截取用逗号隔开的各个关键字
- 详解网络摄像机中的IR-CUT
- P1141 01迷宫(BFS+记忆化)
- 熊猫python_Python库-------熊猫
- Android开发之原生定位的方法(GPS,网络定位)
- VC跨进程数据(结构体)传递-WM_COPYDATA
- redis笔记_源码_简单动态字符串SDS
- Anaconda 安装教程(Win10环境) Tensorflow安装
- java docker client_Docker Client (another java docker client api)
- 这10个比较好用的服务器管理软件你都知道吗?
- 解读《美国国家BIM标准》 – BIM能力成熟度模型 (七)
- [Unity]如果AssetStore的下载无效怎么办
- Spring Cloud Bus消息总线
- 丰田生产方式(TPS)的本质
- ecu故障现象_汽车重要传感器的常见故障及表现,出现这些问题可能是传感器损坏...
- [读书笔记]《Hands on Design Patterns with C++》—— CRTP
- 【调剂】2023年江西科技师范大学电子科学与技术硕士点 “光电检测与信息处理”课题组硕士招生...
- 2015年十大IT趋势 云计算占榜首
- IBM人工智能驱动的隐形恶意软件工具DeepLo​​cker
热门文章
- 点击复制公众号按钮_96编辑器如何复制文章到公众号发布?
- aix oracle调整逻辑卷的大小,AIX上增加逻辑卷时报错误0516-787 extendlv: Maximum allocation for logical volume(示例代码)...
- linux与Windows查看路由
- numeric比较大小 数据库_Liquibase 数据库版本管理工具:3. changeSet 变更集详解
- select count(*) from返回值_MySQL 优化:count(1)真的比count(*)快吗
- 最速下降法极小化rosenbrock函数 代码_典型算法思想与应用9|分支限界法与电路布线问题
- Python 语言程序设计(5-2)七段数码管程序编写设计
- 1概率论与数理统计_浙江大学B站
- liunxs运维_Linux运维工程师必备(命令)
- 人工智能语言python招聘_编程语言这么多为什么选Python