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

写,其它小写)。

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

输入输出样例

输入样例#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<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 潜伏者相关推荐

  1. 洛谷P1071 潜伏者 字符串

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

  2. 洛谷——P1071 潜伏者

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

  3. (Java实现) 洛谷 P1071 潜伏者

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

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

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

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

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

  6. 潜伏者(洛谷-P1071)

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

  7. AC日记——潜伏者 洛谷 P1071 (模拟)

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

  8. 洛谷 - 试炼场(全部题目备份)

    整理的算法模板合集: ACM模板 目录 1.新手村 1 - 1 洛谷的第一个任务 1 - 2 顺序与分支 1 - 3 循环!循环!循环! 1 - 4 数组 1 - 5 简单字符串 1 - 6 过程函数 ...

  9. 洛谷-题解 P2672 【推销员】

    独门思路!链表加优先队列! 这题一望,贪心是跑不掉了,但是我贪心并不好,所以想到了一个复杂一些但思路更保稳的做法 思路: 1 因为是离线操作,所以我们可以倒着求,先求x=n的情况,因为那样直接就知道了 ...

最新文章

  1. 吊打 ThreadLocal,谈谈FastThreadLocal为啥能这么快?
  2. GRDB自定义的纯函数
  3. webbench 代码阅读
  4. python语言入门e_python 语言学入门第一课必看:编码规范
  5. 命名空间“Microsoft.AspNet”中不存在类型或命名空间名“Mvc”
  6. Kotlin实战指南四:区间
  7. seleniumpython定位网页元素方法_使用Selenium对网页元素进行定位的诸种方法
  8. oracle 查询结果升序,Oracle学习日志-8(查询结果排序)
  9. 利用linux的mtrace命令定位内存泄露(Memory Leak)
  10. 台式机dp接口_2K至4K显示器性价比线材选购攻略,毕亚兹 DP高清线入手
  11. python 会议室预约系统解决方案_会议预约管理系统解决方案
  12. edge浏览器,无法继续下载,提示检测到病毒的问题
  13. Linux基础命令的那些事儿(1)
  14. 华为鸿蒙系统新闻点评,关于华为鸿蒙操作系统,品牌专家是这样点评的
  15. iPhone录音转文字怎么操作?手把手教你详细流程
  16. 重磅!22张深度学习精炼图笔记总结!
  17. java中如果int类型超出了它的范围
  18. SQL Server研习录(08)——LEFT()函数
  19. 计算机专业女生掉发,女生经常掉头发是什么原因有哪些
  20. Android文档及学习资料整理 【至2011年7月】

热门文章

  1. CAS5.3.14安装、配置完全教程
  2. 使用vscode删除markdown空行
  3. docker容器内部使用vim
  4. 请解释为什么集合类没有实现Cloneable和Serializable接口?
  5. Spring Cloud Stream整合RabbitMQ
  6. Scala Case类和对象
  7. python 数学建模、时间戳_python-在matplotlib中绘制Unix时间戳
  8. ubuntu c++ 实现自动回车键功能_从X86到ARM,实现C和C++语言90% Code自动迁移
  9. Linux下Cpabe Toolkit安装教程
  10. python(matplotlib7)——subplot 一个figure中国显示几个小图 分格显示