首页 > 其他分享 >洛谷——P1071 [NOIP2009 提高组] 潜伏者

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

时间:2022-10-06 17:55:45浏览次数:87  
标签:翻译 洛谷 NOIP2009 char 翻译成 26 密文 P1071

本次博客,我将记录洛谷P1071 潜伏者

[NOIP2009 提高组] 潜伏者

理解题意:
对于failed的情况,有以下三种:

1.扫描完毕后发现某个字母没有对应的翻译

2.扫描过程中发现自相矛盾,这种情况分两种,一种是某个密文对应多种翻译(比如前面已经把A翻译成B, 后面又把A翻译成C);另一种是某个翻译对应多个密文(比如先把A翻译成B,接着又把C翻译成B,这样虽然符合我们的常识,但不符合题意)

解题思路

我的解题思路很简单,就是利用数组映射26个英文字母,通过两个char型数组实现密文-翻译以及翻译-密文的映射

代码如下:

#include<iostream>
#include<map>
#include<cstring>
using namespace std;
//三条信息,分别对应加密信息,原信息和待翻译的信息
string str1,str2,str3,str;
char ch[26]={0};//密文-翻译 
char ch1[26]={0};//翻译-密文 
int main()
{
	
	cin>>str1>>str2>>str3;
	for(int i=0;i<str1.length();i++){
		//如果没有该记录,记录信息 
		if(ch[str1[i]-'A']==0&&ch1[str2[i]-'A']==0) ch[str1[i]-'A']=str2[i],ch1[str2[i]-'A']=str1[i];
		//如果已经存在该信息 
		else{
			if(ch[str1[i]-'A']!=str2[i]||ch1[str2[i]-'A']!=str1[i]){
				cout<<"Failed";
				return 0;
			}
		}
	}
	for(int i=0;i<26;i++){
		if(ch[i]==0){
			cout<<"Failed";
			return 0;
		}
	}
	for(int i=0;i<str3.length();i++){
		str+=ch[str3[i]-'A'];
	} 
	cout<<str;
	return 0;
}

本文完

标签:翻译,洛谷,NOIP2009,char,翻译成,26,密文,P1071
From: https://www.cnblogs.com/Sky6634/p/16758110.html

相关文章

  • *洛谷 P1018 [NOIP2000 提高组] 乘积最大(dfs+高精度)
    说在前头此篇题解是记录自己的暴力写法,并不能100分满分通过洛谷测试数据(只有60)纯纯记录写法而写https://www.luogu.com.cn/problem/P1018我还说这么简单呢这题,想太......
  • [题解]洛谷 P4700
    经典题没做出来,是不是该死?是不是该死?首先缩点什么的都是套路性的,然后发现一个事,你要是缩完点直接做,就相当于有向无玕图上标记一些点,求另一些点能到达多少个标记点,这个似乎......
  • 洛谷1351 -- 联合权值
      遍历一遍树,在遍历的同时,传入节点u的父亲和祖父,计算答案#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>usingnamespacestd;......
  • 洛谷 P1340 兽径管理
    题干 悲怆历程(主要还是因为自己作死)啊这个题,一眼就是克鲁斯卡尔最小生成树简介题意:$n$个点,添加$W$次边,每次添加边都询问最小生成树其中1<=n<=200,1<=......
  • 洛谷 P1827 [USACO3.4] 美国血统 American Heritage(后序遍历)
    https://www.luogu.com.cn/problem/P1827题目大意:已知前序中序遍历求后序遍历。输入#1ABEDFCHGCBADEFGH输出#1AEFDBHGC#include<bits/stdc++.h>usingn......
  • 洛谷 P7931
    以下标为横坐标,值为纵坐标,建立坐标系。然后会发现每个点的后继在其右上方。按照每个点LIS大小来分层,以样例\(3\)为例:注意到同层之间一定满足\(x\)递增\(y\)递......
  • [题解]洛谷 P4930、BZOJ 4221
    洛谷P4930考虑\(\varphi\)有什么性质,设\(x\)的质因数分解为\(\prod_{i=1}^mp_i^{a_i}\),那么\(n=\varphi(x)=\prod_{i=1}^m(p_i-1)\times\prod_{i=1}^mp_i^{a_i-1......
  • 洛谷 P4186
    首先对于一棵子树,肯定是放在这棵子树中深度最小的叶节点。那如何分析子树中深度最小的叶节点深度够不够小呢?我们看到,我们关注叶节点深度是为了看它能不能在Bessie从根......
  • 洛谷 CF550C Divisibility by Eight(DP/数论)
    遇事不决,小学数学。https://www.luogu.com.cn/problem/CF550C题目大意:给你一个位数不超过100的非负整数N(不含前导0)。你的任务是判断这个数字能否通过去掉其中......
  • 【树上背包】洛谷 P4516 [JSOI2018] 潜入行动
    P4516[JSOI2018]潜入行动省选/NOI-、树上背包计数题意略设状态为\(dp[u][j][0/1][0/1]\),u点子树放了j个装置,u点有没有放装置,u点有没有被监听的方案数。对......