题目描述

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

1. SS国军方内部欲发送的原信息经过加密后在网络上发送,原信息的内容与加密后所得的内容均由大写字母‘AA’-‘ZZ’构成(无空格等其他字符)。

2. SS国对于每个字母规定了对应的“密字”。加密的过程就是将原信息中的所有字母替换为其对应的“密字”。

3. 每个字母只对应一个唯一的“密字”,不同的字母对应不同的“密字”。“密字”可以和原字母相同。

例如,若规定‘AA’的密字为‘AA’,‘BB’的密字为‘CC’(其他字母及密字略),则原信息“ABAABA”被加密为“ACAACA”。

现在,小CC 通过内线掌握了SS 国网络上发送的一条加密信息及其对应的原信息。小CC希望能通过这条信息,破译SS 国的军用密码。小 CC 的破译过程是这样的:扫描原信息,对于原信息中的字母xx(代表任一大写字母),找到其在加密信息中的对应大写字母yy,并认为在密码里 yy是xx的密字。如此进行下去直到停止于如下的某个状态:

1. 所有信息扫描完毕,‘AA’-‘ZZ’ 所有 2626个字母在原信息中均出现过并获得了相应的“密字”。获得完整密码集

2. 所有信息扫描完毕,但发现存在某个(或某些)字母在原信息中没有出现。(映射不完全,通过遍历vis1[], vis2[]判断 )

3. 扫描中发现掌握的信息里有明显的自相矛盾或错误(违反 SS 国密码的编码规则)。例

如某条信息“XYZXYZ”被翻译为“ABAABA”就违反了“不同字母对应不同密字”的规则。

(通过对应原码和密文时,判断该密文以及被映射了,被映射地内容是否和当前正在判断的字符相同,若不同直接failed)

在小 CC 忙得头昏脑涨之际,RR 国司令部又发来电报,要求他翻译另外一条从 SS国刚刚截取到的加密信息。现在请你帮助小CC:通过内线掌握的信息,尝试破译密码。然后利用破译的密码,翻译电报中的加密信息。

输入格式

共 33行,每行为一个长度在 11到 100100之间的字符串。

第 11 行为小 CC 掌握的一条加密信息。

第22 行为第 11 行的加密信息所对应的原信息。

第 33行为 RR国司令部要求小CC 翻译的加密信息。

输入数据保证所有字符串仅由大写字母‘AA’-‘ZZ’构成,且第 11行长度与第 22行相等。

输出格式

共 11 行。

若破译密码停止时出现 2,32,3 两种情况,请你输出“FailedFailed”(不含引号,注意首字母大

写,其它小写)。

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

输入输出样例

输入 #1复制

AA
AB
EOWIE

输出 #1复制

Failed

输入 #2复制

QWERTYUIOPLKJHGFDSAZXCVBN
ABCDEFGHIJKLMNOPQRSTUVWXY
DSLIEWO

输出 #2复制

Failed

输入 #3复制

MSRTZCJKPFLQYVAWBINXUEDGHOOILSMIJFRCOPPQCEUNYDUMPP
YIZSDWAHLNOVFUCERKJXQMGTBPPKOIYKANZWPLLVWMQJFGQYLL
FLSO 

输出 #3复制

NOIP

说明/提示

【输入输出样例11说明】

原信息中的字母‘AA’和‘BB’对应相同的密字,输出“FailedFailed”。

【输入输出样例 22说明】

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

NOIP 2009 提高组 第一题

解题目标:是否获悉整套对应密码并能用密码集解密。

注意点:

1)字符对应关系是一一映射的,不论是原码 还是译码 都不能 重复。(唯一性)

2)       26个字母都必须有唯一地对应。 (全面性)

解题方法:

1)之前有听一个同学用multimap做的

可以之后整一下。

2)代码

#include <bits/stdc++.h>
#define MAXN 2005
#define inf 0x3f3f3f3f
#define rep(x, a, b) for(int x=a; x<=b; x++)
#define per(x, a, b) for(int x=a; x>=b; x--)
using namespace std;
bool vis1[26];
bool vis2[26];
int password[26];
int p[26];
string a, b, c;
int cot1, cot2;
void isEnough1()
{rep(i, 0, 25)if(vis1[i]) cot1++;
}
void isEnough2()
{rep(i, 0, 25)if(vis2[i]) cot2++;
}
int main()
{bool ans = false;cin>>a>>b>>c;rep(i, 0, (int)a.length()-1){if( !vis1[b[i]-'A'] && !vis2[a[i]-'A'] ){vis1[b[i]-'A'] = true;vis2[a[i]-'A'] = true;p[b[i]-'A'] = a[i] - 'A';password[a[i]-'A'] = b[i] - 'A';}else if (vis1[b[i]-'A'] && vis2[a[i]-'A'] && p[b[i]-'A'] == a[i] - 'A' && password[a[i]-'A'] == b[i] - 'A'){continue ;}else{ans = true;}}isEnough1();isEnough2();if( cot1 != 26 || cot1 != cot2 )  ans = true;if(ans) cout<<"Failed";elserep(i, 0, (int)c.length()-1)cout<<(char)(password[c[i]-'A'] +'A');return 0;
}

P1071 [NOIP2009 提高组] 潜伏者相关推荐

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

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

  2. #10025 「一本通 1.3 练习 4」靶形数独P1074 [NOIP2009 提高组]

    [NOIP2009 提高组] 靶形数独 题目背景 此为远古题,不保证存在可以通过任意符合要求的输入数据的程序. 题目描述 小城和小华都是热爱数学的好学生,最近,他们不约而同地迷上了数独游戏,好胜的他们 ...

  3. P1072 [NOIP2009 提高组] Hankson 的趣味题

    题目描述 Hanks 博士是 BT(Bio-Tech,生物技术) 领域的知名专家,他的儿子名叫 Hankson.现在,刚刚放学回家的 Hankson 正在思考一个有趣的问题. 今天在课堂上,老师讲解了 ...

  4. NOIP2009提高组复赛原题题解——Proking

    要开始准备GDKOI了,这应该是第一场正式赛吧,今天是在家里做的,状态不好,做题没有紧迫感,T2竟然考试时没有A掉,T4也没有多想想,T3更是一道很水的spfa(关键是得动动脑子啊!感觉自己智商有问题 ...

  5. NOIP1998-2018 CSP-S2 2019 2021提高组解题报告与视频

    CSP-S 2020 讲题录屏 CSP-S 2020 讲题录屏_哔哩哔哩_bilibili 冠军说题--ACM世界冠军吴卓杰,带你复盘2020 CSP-S2 冠军说题--ACM世界冠军吴卓杰,带你复盘 ...

  6. NOIP2018提高组初赛准备

    NOIP2017提高组初赛错题 一.单项选择题(共15 题,每题1.5 分,共计22.5 分:每题有且仅有一个正确选项) 4. 2017年10月1日是星期日,1949年10月1日是( ). A. 星期 ...

  7. noip2017爆炸记——题解总结反省(普及组+提高组)

    相关链接: noip2018总结 noip2017是我见过的有史以来最坑爹的一场考试了. 今年北京市考点有一个是我们学校,我还恰好被分到了自己学校(还是自己天天上课的那个教室),于是我同时报了普及提高 ...

  8. NOIP大纲整理:(零)历年2000-2016NOIP提高组题目分析

    年份 题目名称 考查内容 难度   2000-2016年NOIP提高组复赛题目 2000-A 进制转换 初等代数,找规律 ★ 2000-B 乘积最大 资源分配DP ★★★ 2000-C 单词接龙 DF ...

  9. P1066 2^k进制数 NOIP 2006 提高组 第四题

    洛谷蓝题(点击跳转) 提高组 第四题 题目描述 设r是个2^k 进制数,并满足以下条件: (1)r至少是个2位的2^k 进制数. (2)作为2^k 进制数,除最后一位外,r的每一位严格小于它右边相邻的 ...

最新文章

  1. C语言基础:数组作为函数参数传递演示源码
  2. 单向板的受力示意图_成品单向滑动铰支座的安装使用
  3. 如何在Linux中安装和使用Silver Searcher(程序员的代码搜索工具)
  4. 为什么使用Maven
  5. POJ1179 Polygon 【例题精讲】
  6. 计算机辅助审计的特点是,浅谈新环境下计算机辅助审计的特点和应用_1
  7. 加速你的企业数字化转型,首先做到这一步!
  8. 如何画指数函数图像探讨其函数性质
  9. 优酷kux视频文件转换成mp4格式
  10. 免流混淆 一 待完善(更新中)
  11. mysql_opt_reconnect mysql_ping_蛋疼的mysql_ping()以及MYSQL_OPT_RECONNECT
  12. 设计一个抽象类图形类,在该类中包含有至少两个抽象方法求周长和求面积,分别定义圆形类、长方形类、正方形类来继承图形类,并实现上述两个方法。并创建实例验证。
  13. cad模型轻量化_【技术帖】基于轻量化概念的碳纤维复合材料汽车保险杠设计
  14. JAVA毕业设计-智慧农业水果销售系统计算机源码+lw文档+系统+调试部署+数据库
  15. 家里两个孩子,你们会一个跟爸姓,一个跟妈姓吗?
  16. 绘制太极图(CSS)
  17. SpringBoot(三):Lombok
  18. Python3基础--18--数据库编程(上)
  19. java实现交集并集差集
  20. 事件相机模拟器rpg-esim环境搭建

热门文章

  1. vue设置浏览器自动打开网址为 http://0.0.0.0:8080/ 的网页可能暂时无法连接,或者它已永久性地移动到了新网址。
  2. MySQLl快速入门笔记加基本查询练习
  3. 嵌入式linux驱动开发--设备资源描述
  4. window在文件管理器中打开命令行窗口
  5. 研究生值得一览的优秀文章
  6. Java二维码工具类(超详细注释)
  7. 西北乱跑娃 --- python命令行换源配置
  8. O2O优惠券发放与使用情况分析
  9. Nds-IR780 近红外荧光探针IR780纳米粒子
  10. 第三届蓝桥杯 c/c++真题