P1071 [NOIP2009 提高组] 潜伏者
题目描述
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 提高组] 潜伏者相关推荐
- 信息学奥赛一本通 1855:【09NOIP提高组】潜伏者 | OpenJudge NOI 1.7 11:潜伏者 | 洛谷 P1071 [NOIP2009 提高组] 潜伏者
[题目链接] ybt 1855:[09NOIP提高组]潜伏者 OpenJudge NOI 1.7 11:潜伏者 洛谷 P1071 [NOIP2009 提高组] 潜伏者 [题目考点] 1. 字符串 2. ...
- #10025 「一本通 1.3 练习 4」靶形数独P1074 [NOIP2009 提高组]
[NOIP2009 提高组] 靶形数独 题目背景 此为远古题,不保证存在可以通过任意符合要求的输入数据的程序. 题目描述 小城和小华都是热爱数学的好学生,最近,他们不约而同地迷上了数独游戏,好胜的他们 ...
- P1072 [NOIP2009 提高组] Hankson 的趣味题
题目描述 Hanks 博士是 BT(Bio-Tech,生物技术) 领域的知名专家,他的儿子名叫 Hankson.现在,刚刚放学回家的 Hankson 正在思考一个有趣的问题. 今天在课堂上,老师讲解了 ...
- NOIP2009提高组复赛原题题解——Proking
要开始准备GDKOI了,这应该是第一场正式赛吧,今天是在家里做的,状态不好,做题没有紧迫感,T2竟然考试时没有A掉,T4也没有多想想,T3更是一道很水的spfa(关键是得动动脑子啊!感觉自己智商有问题 ...
- NOIP1998-2018 CSP-S2 2019 2021提高组解题报告与视频
CSP-S 2020 讲题录屏 CSP-S 2020 讲题录屏_哔哩哔哩_bilibili 冠军说题--ACM世界冠军吴卓杰,带你复盘2020 CSP-S2 冠军说题--ACM世界冠军吴卓杰,带你复盘 ...
- NOIP2018提高组初赛准备
NOIP2017提高组初赛错题 一.单项选择题(共15 题,每题1.5 分,共计22.5 分:每题有且仅有一个正确选项) 4. 2017年10月1日是星期日,1949年10月1日是( ). A. 星期 ...
- noip2017爆炸记——题解总结反省(普及组+提高组)
相关链接: noip2018总结 noip2017是我见过的有史以来最坑爹的一场考试了. 今年北京市考点有一个是我们学校,我还恰好被分到了自己学校(还是自己天天上课的那个教室),于是我同时报了普及提高 ...
- NOIP大纲整理:(零)历年2000-2016NOIP提高组题目分析
年份 题目名称 考查内容 难度 2000-2016年NOIP提高组复赛题目 2000-A 进制转换 初等代数,找规律 ★ 2000-B 乘积最大 资源分配DP ★★★ 2000-C 单词接龙 DF ...
- P1066 2^k进制数 NOIP 2006 提高组 第四题
洛谷蓝题(点击跳转) 提高组 第四题 题目描述 设r是个2^k 进制数,并满足以下条件: (1)r至少是个2位的2^k 进制数. (2)作为2^k 进制数,除最后一位外,r的每一位严格小于它右边相邻的 ...
最新文章
- C语言基础:数组作为函数参数传递演示源码
- 单向板的受力示意图_成品单向滑动铰支座的安装使用
- 如何在Linux中安装和使用Silver Searcher(程序员的代码搜索工具)
- 为什么使用Maven
- POJ1179 Polygon 【例题精讲】
- 计算机辅助审计的特点是,浅谈新环境下计算机辅助审计的特点和应用_1
- 加速你的企业数字化转型,首先做到这一步!
- 如何画指数函数图像探讨其函数性质
- 优酷kux视频文件转换成mp4格式
- 免流混淆 一 待完善(更新中)
- mysql_opt_reconnect mysql_ping_蛋疼的mysql_ping()以及MYSQL_OPT_RECONNECT
- 设计一个抽象类图形类,在该类中包含有至少两个抽象方法求周长和求面积,分别定义圆形类、长方形类、正方形类来继承图形类,并实现上述两个方法。并创建实例验证。
- cad模型轻量化_【技术帖】基于轻量化概念的碳纤维复合材料汽车保险杠设计
- JAVA毕业设计-智慧农业水果销售系统计算机源码+lw文档+系统+调试部署+数据库
- 家里两个孩子,你们会一个跟爸姓,一个跟妈姓吗?
- 绘制太极图(CSS)
- SpringBoot(三):Lombok
- Python3基础--18--数据库编程(上)
- java实现交集并集差集
- 事件相机模拟器rpg-esim环境搭建