poj2159(排序题意难懂还是水题别看…
来源:互联网 发布:魔兽世界5.2数据库 编辑:程序博客网 时间:2024/05/01 17:10
http://poj.org/problem?id=2159
Ancient Cipher
Time Limit: 1000MSMemory Limit: 65536KTotal Submissions: 21680Accepted: 7351
Description
Ancient Roman empirehad a strong government system with various departments, includinga secret service department. Important documents were sent betweenprovinces and the capital in encrypted form to preventeavesdropping. The most popular ciphers in those times were socalled substitution cipher and permutation cipher.
Substitution cipher changes all occurrences of each letter to someother letter. Substitutes for all letters must be different. Forsome letters substitute letter may coincide with the originalletter. For example, applying substitution cipher that changes allletters from 'A' to 'Y' to the next ones in the alphabet, andchanges 'Z' to 'A', to the message "VICTORIOUS" one gets themessage "WJDUPSJPVT".
Permutation cipher applies some permutation to the letters of themessage. For example, applying the permutation <2,1, 5, 4, 3, 7, 6, 10, 9, 8> to the message"VICTORIOUS" one gets the message "IVOTCIRSUO".
It was quickly noticed that being applied separately, bothsubstitution cipher and permutation cipher were rather weak. Butwhen being combined, they were strong enough for those times. Thus,the most important messages were first encrypted using substitutioncipher, and then the result was encrypted using permutation cipher.Encrypting the message "VICTORIOUS" with the combination of theciphers described above one gets the message "JWPUDJSTVP".
Archeologists have recently found the message engraved on a stoneplate. At the first glance it seemed completely meaningless, so itwas suggested that the message was encrypted with some substitutionand permutation ciphers. They have conjectured the possible text ofthe original message that was encrypted, and now they want to checktheir conjecture. They need a computer program to do it, so youhave to write one.
Substitution cipher changes all occurrences of each letter to someother letter. Substitutes for all letters must be different. Forsome letters substitute letter may coincide with the originalletter. For example, applying substitution cipher that changes allletters from 'A' to 'Y' to the next ones in the alphabet, andchanges 'Z' to 'A', to the message "VICTORIOUS" one gets themessage "WJDUPSJPVT".
Permutation cipher applies some permutation to the letters of themessage. For example, applying the permutation <2,1, 5, 4, 3, 7, 6, 10, 9, 8> to the message"VICTORIOUS" one gets the message "IVOTCIRSUO".
It was quickly noticed that being applied separately, bothsubstitution cipher and permutation cipher were rather weak. Butwhen being combined, they were strong enough for those times. Thus,the most important messages were first encrypted using substitutioncipher, and then the result was encrypted using permutation cipher.Encrypting the message "VICTORIOUS" with the combination of theciphers described above one gets the message "JWPUDJSTVP".
Archeologists have recently found the message engraved on a stoneplate. At the first glance it seemed completely meaningless, so itwas suggested that the message was encrypted with some substitutionand permutation ciphers. They have conjectured the possible text ofthe original message that was encrypted, and now they want to checktheir conjecture. They need a computer program to do it, so youhave to write one.
Input
Input contains twolines. The first line contains the message engraved on the plate.Before encrypting, all spaces and punctuation marks were removed,so the encrypted message contains only capital letters of theEnglish alphabet. The second line contains the original messagethat is conjectured to be encrypted in the message on the firstline. It also contains only capital letters of the Englishalphabet.
The lengths of both lines of the input are equal and do not exceed100.
The lengths of both lines of the input are equal and do not exceed100.
Output
Output "YES" if themessage on the first line of the input file could be the result ofencrypting the message on the second line, or "NO" in the othercase.
Sample Input
JWPUDJSTVPVICTORIOUS
Sample Output
YES
Source
Northeastern Europe 2004
ps:这题可以不要做,题意好难懂啊。。。读懂了就是一道水题。。看来很多解题报告才稍微懂点,吃饭的时候有想了想,终于弄懂了。。飘过
26个字母的加密过程是一个一对一的映射,只需要统计这两个字符串中各个字符出项的频率,然后分别对两个串各个字符按照出现的字符次数升序或者降序排序。如果排序后的频率数值对应相等,这输出YES,否则输出NO。
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
int c[30],d[30];
char a[110],b[110];
int main()
{
while(scanf("%s",a)!=EOF)
{
scanf("%s",b);
memset(c,0,sizeof(c));
memset(d,0,sizeof(d));
int lena=strlen(a);
int lenb=strlen(b);
int i;
for(i=0;i<lena;i++)
c[a[i]-'A']++;
for(i=0;i<lenb;i++)
d[b[i]-'A']++;
sort(c,c+26);
sort(d,d+26);
for(i=0;i<26;i++)
{
if(c[i]!=d[i])
{
printf("NO\n");
return0;
}
}
printf("YES\n");
}
return 0;
}
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
int c[30],d[30];
char a[110],b[110];
int main()
{
}
- poj2159(排序题意难懂还是水题别看…
- ZOJ - 3879 Capture the Flag (模拟)题意难懂的水题
- poj1087(题意难懂)
- 非洲小孩题意有点难懂
- HDU 1673 题意难懂啊
- hdu1214 圆桌会议(数学:题意难懂+水题)
- UVA 10340(难懂的题意+思维)
- POJ2159
- POJ2159
- poj2159
- POJ2159
- poj2159
- poj2159
- poj2159
- poj2159
- poj2159
- poj2159
- POJ2159
- poj1521(huffman)
- poj2499(K短路)
- poj2488(二叉查找树||串)
- Linux系统文件I/O编程(二)---文件锁函数
- 1poj2092(简单排序)
- poj2159(排序题意难懂还是水题别看…
- 0.7poj2231(排序记公式)
- 1poj2371(简单排序)
- Linux shell 基础
- 0.9poj2376(贪心)
- 1poj1111(dfs)
- 在CMD命令行下关闭进程的命令
- 0.9poj1129(dfs四色问题不错)
- 0.8poj1564(dfs好题啊)