LA3213加密
来源:互联网 发布:高斯白噪声协方差矩阵 编辑:程序博客网 时间:2024/06/11 10:34
题意:
白书上有些题的题意说的太蛋疼了,这个题的意思是说有两种加密方式,一种是交换位置,另一种是一一映射,交换位置是指如ABCD 可以加密成DCBA 也可以加密成ACBD就是把某些字母的位置改变了,至于是谁和谁交换随意,而一一映射是指ADD 可以加密成 BCC但不可以加密成ABC,然后现在有一种新的加密方式就是前面两个的合成版,现在问题来了,给你两个字母串(只有大写字母)问其中一个是不是由另一个经过新的加密方式(就是那两个方式合成在一起)加密过来的。
思路:
我们想一下,对于第一种加密方式,既然是可以随意改变位置,对于给定的两个串我们就不用考虑他们的顺序了,直接统计每个字母的出现个数,得到一个出现个数的序列,然后对于第二种加密,说是可以映射,但是映射谁我所谓只要不冲突就行,那么我们就不用管具体是那个字母出现了多少次,我们只要出现次数,然后我们把两个出现次数序列sort一遍,然后一一对应比较就行了,具体细节看代码。
#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;
int mk1[30] ,mk2[30];
char st1[110] ,st2[110];
int main ()
{
int i ,l ,Ans;
while(~scanf("%s" ,st1))
{
scanf("%s" ,st2);
l = strlen(st1) - 1;
memset(mk1 ,0 ,sizeof(mk1));
memset(mk2 ,0 ,sizeof(mk2));
for(i = 0 ;i <= l ;i ++)
{
mk1[st1[i] - 'A'] --;
mk2[st2[i] - 'A'] --;
}
sort(mk1 ,mk1 + 26);
sort(mk2 ,mk2 + 26);
for(Ans = 0 ,i = 0 ;i <= 25 && !Ans;i ++)
if(mk1[i] != mk2[i]) Ans = 1;
!Ans ? puts("YES") : puts("NO");
}
return 0;
}
白书上有些题的题意说的太蛋疼了,这个题的意思是说有两种加密方式,一种是交换位置,另一种是一一映射,交换位置是指如ABCD 可以加密成DCBA 也可以加密成ACBD就是把某些字母的位置改变了,至于是谁和谁交换随意,而一一映射是指ADD 可以加密成 BCC但不可以加密成ABC,然后现在有一种新的加密方式就是前面两个的合成版,现在问题来了,给你两个字母串(只有大写字母)问其中一个是不是由另一个经过新的加密方式(就是那两个方式合成在一起)加密过来的。
思路:
我们想一下,对于第一种加密方式,既然是可以随意改变位置,对于给定的两个串我们就不用考虑他们的顺序了,直接统计每个字母的出现个数,得到一个出现个数的序列,然后对于第二种加密,说是可以映射,但是映射谁我所谓只要不冲突就行,那么我们就不用管具体是那个字母出现了多少次,我们只要出现次数,然后我们把两个出现次数序列sort一遍,然后一一对应比较就行了,具体细节看代码。
#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;
int mk1[30] ,mk2[30];
char st1[110] ,st2[110];
int main ()
{
int i ,l ,Ans;
while(~scanf("%s" ,st1))
{
scanf("%s" ,st2);
l = strlen(st1) - 1;
memset(mk1 ,0 ,sizeof(mk1));
memset(mk2 ,0 ,sizeof(mk2));
for(i = 0 ;i <= l ;i ++)
{
mk1[st1[i] - 'A'] --;
mk2[st2[i] - 'A'] --;
}
sort(mk1 ,mk1 + 26);
sort(mk2 ,mk2 + 26);
for(Ans = 0 ,i = 0 ;i <= 25 && !Ans;i ++)
if(mk1[i] != mk2[i]) Ans = 1;
!Ans ? puts("YES") : puts("NO");
}
return 0;
}
0 0
- LA3213加密
- LA3213
- 加密
- 加密..................
- 加密
- 加密
- 加密
- 加密
- 加密
- 加密
- 加密
- 加密
- 加密
- 加密
- 加密
- 加密
- 加密
- 加密
- LA3029最大子矩阵
- XMPP 简介
- 英语学习之沪江整理 20141102
- java学习:异常
- vs2013+node.js 学习javascript 第一篇:准备工作+Hello World
- LA3213加密
- 剑指offer23--从上往下打印二叉树
- LA3266田忌赛马
- 深刻理解KSVD字典训练方法
- word2vec并行实现
- atcoder之A Mountaineer
- 硬盘的内部构造及解析
- LA4636积木艺术
- 第10周项目4大奖赛计分