Time Limit: 1 second

Memory Limit: 128 MB

【问题描述】

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:通过内线掌握的信息,尝试破译密码。然后利用破译的密码,翻译中的加密信息。

【输入】

输入文件名为spy.in,共3行,每行为一个长度在1到100之间的字符串。     第1行为小C掌握的一条加密信息。
第2行为第1行的加密信息所对应的原信息。
第3行为R国司令部要求小C翻译的加密信息。
输入数据保证所有字符串仅由大写字母“A”—“Z”构成,且第1行长度与第2行相等。

【输出】

输出文件spy.out,共1行。     若破译密码停止时出现2、3两种情况,请你输出“Failed”(不含引号,注意首字母大写,其它小写)。
否则请输出利用密码翻译电报中加密信息后得到的原信息。

【输入样例1】

AA
AB
EOWIE

【输出样例1】

Failed

【输入输出样例1说明】

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

【输入样例2】

QWERTYUIOPLKJHGFDSAZXCVBN
ABCDEFGHIJKLMNOPQRSTUVWXY
DSLIEWO

【输出样例1】

Failed

【输入输出样例2说明】

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

【输入样例3】

MSRTZCJKPFLQYVAWBINXUEDGHOOILSMIJFRCOPPQCEUNYDUMPP
YIZSDWAHLNOVFUCERKJXQMGTBPPKOIYKANZWPLLVWMQJFGQYLL
FLSO

【输出样例3】

NOIP

【题目链接】:http://noi.qz5z.com/viewtask.asp?id=b091

【题解】



用一个bool数组记录某个字符有没有被转成其他字符;

用另外一个bool数组记录某个字符是不是其他字符的编码;

扫描初始码;

看看对应的编码符不符合要求即可;

不会很难;

编码的关系直接用map搞就好了;再转成1..26太麻烦;



【完整代码】

#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <map> const int MAXN = 110; using namespace std; map <char,int> b1,b2;
map <char,char> dic; char s1[MAXN],s2[MAXN],s3[MAXN];
int num = 0; void QAQ()
{
puts("Failed");
exit(0);
} int main()
{
//freopen("F:\\rush.txt","r",stdin);
scanf("%s",s1);
scanf("%s",s2);
scanf("%s",s3);
int len = strlen(s1);
for (int i = 0;i <= len-1;i++)
{
if (!b1[s1[i]])
{
b1[s1[i]] = 1;
dic[s1[i]] = s2[i];
if (b2[s2[i]]==1)
QAQ();
else
b2[s2[i]] = 1;
num++;
}
else
if (dic[s1[i]]!=s2[i])
QAQ();
}
if (num <26)
QAQ();
len = strlen(s3);
for (int i = 0;i <= len-1;i++)
putchar(dic[s3[i]]);
return 0;
}

【b091&&z11】潜伏者的更多相关文章

  1. NOIP2009潜伏者【B003】

    [B003]潜伏者[难度B]—————————————————————————————————————————————————————————————————— [题目要求] R国和S国正陷入战火之中 ...

  2. noip2009 潜伏者

    P1071 潜伏者 827通过 2.2K提交 题目提供者洛谷OnlineJudge 标签字符串模拟2009NOIp提高组 难度普及/提高- 提交该题 讨论 题解 记录   题目描述 R 国和 S 国正 ...

  3. Codevs 1171 潜伏者 2009年NOIP全国联赛提高组

    1171 潜伏者 2009年NOIP全国联赛提高组 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题目描述 Description [问题描述] R 国和S 国正陷 ...

  4. js中的潜伏者之Arguments对象

    argument 说明: 在JavaScript中,arguments是对象的一个特殊属性.arguments对象就像数组,但是它却不是数组.可以理解为他是潜伏者,通俗的说,就是你传的参数不一定按照参 ...

  5. NOIP 2009 潜伏者

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

  6. 洛谷 P1071 潜伏者

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

  7. P1071 潜伏者

    //Pro:NOIP2009 T1 P1071 潜伏者 #include<iostream> #include<cstdio> #include<cstring> ...

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

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

  9. [NOIP2009] 提高组 洛谷P1071 潜伏者

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

随机推荐

  1. Icomparer和Icomparable集合排序

    c#中实现对象集合的排序可以使用ArrayList中的Sort()方法,而有比较才能谈排序,因为不是基本类型(如string ,int.double......等)所以.NET Framework不可 ...

  2. 120.VS调试技巧

    设置断点调试 在一行代码的左侧点击即可设置断点,按F5(调试->开始调试)即可运行到第一个端点处暂停 逐语句调试 按F11(调试->逐语句)即可开始一步一步执行 逐过程调试 按F10(调试 ...

  3. sync---强制将被改变的内容立刻写入磁盘

    sync命令用于强制被改变的内容立刻写入磁盘,更新超块信息. 在Linux/Unix系统中,在文件或数据处理过程中一般先放到内存缓冲区中,等到适当的时候再写入磁盘,以提高系统的运行效率.sync命令则 ...

  4. CMDB学习之四 ——DEBUG模式

    定义一个debug,进行解析调试,到测试文件 配置文件,配置debug模式,定义环境变量, #!/usr/bin/env python # -*- coding:utf-8 -*- import os ...

  5. src/MD2.c:31:20: 错误:Python.h:没有那个文件或目录

    一.前言 在CentOS 上安装fabric时出现问题,首先已安装pip, 用pip执行以下命令pip install 出现以下问题 [niy@niy-computer /]$ sudo pip in ...

  6. 洛谷 P1709 [USACO5.5]隐藏口令Hidden Password

    P1709 [USACO5.5]隐藏口令Hidden Password 题目描述 有时候程序员有很奇怪的方法来隐藏他们的口令.Binny会选择一个字符串S(由N个小写字母组成,5<=N<= ...

  7. iOS报错 -pie can only be used when targeting iOS 4.2 or later

    近期,使用师兄的project时.突然报错之前没发现这个错误.信息例如以下: ld: -pie can only be used when targeting iOS 4.2 or later cla ...

  8. The program yum-complete-transaction is found in the yum-utils package

    用yum安装的时候出现 The program yum-complete-transaction is found in the yum-utils package. 错误提示的解决方法:# 安装 y ...

  9. String类型转Long类型需要注意的问题

    转自:https://blog.csdn.net/m819177045/article/details/52669785/

  10. 用VBS控制鼠标,在Excel2010、2013,64位中

    原作者文章地址:http://demon.tw/programming/vbs-control-mouse.html 感谢原作者的攻略.才使我学会用VBS控制鼠标. 但是问题接踵而至,Excel200 ...