zoukankan      html  css  js  c++  java
  • 百练 2820 古代密码 解题报告

    1.Link:http://poj.grids.cn/practice/2820/

    2.content

    总时间限制:
    1000ms
    内存限制:
    65536kB
    描述
    古罗马帝王有一个包括各种部门的强大政府组织。其中有一个部门就是保密服务部门。为了保险起见,在省与省之间传递的重要文件中的大写字母是加密的。当时最流行的加密方法是替换和重新排列。
    替换方法是将所有出现的字符替换成其它的字符。有些字符会碰巧替换成它自己。例如:替换规则可以是将'A' 到 'Y'替换成它的下一个字符,将'Z'替换成 'A',如果原词是 "VICTORIOUS" 则它变成 "WJDUPSJPVT"。
    排列方法改变原来单词中字母的顺序。例如:将顺序 <2, 1, 5, 4, 3, 7, 6, 10, 9, 8> 应用到 "VICTORIOUS" 上,则得到"IVOTCIRSUO"。
    人 们很快意识到单独应用替换方法或排列方法,加密是很不保险的。但是如果结合这两种方法,在当时就可以得到非常可靠的加密方法。所以,很多重要信息先使用替 换方法加密,再将加密的结果用排列的方法加密。用两中方法结合就可以将"VICTORIOUS" 加密成"JWPUDJSTVP"。
    考古学家最近在一个石台上发现了一些信息。初看起来它们毫无意义,所以有人设想它们可能是用替换和排列的方法被加密了。人们试着解读了石台上的密码,现在他们想检查解读的是否正确。他们需要一个计算机程序来验证她,你的任务就是写这个验证程序。




    输入
    输入有两行。第一行是石台上的文字。文字中没有空格,并且只有大写英文字母。第二行是被解读出来的加密前的文字。第二行也是由大写英文字母构成的。
    两行字符数目的长度都不超过计划100。
    输出
    如果第二行经过某种加密方法后可以产生第一行的信息,输出 "YES",否则输出"NO"。
    样例输入
    JWPUDJSTVP
    VICTORIOUS
    样例输出
    YES
    

    3.code

     1 #include <iostream>
     2 #include <cstdio>
     3 #include <cstdlib>
     4 #include <cstring>
     5 using namespace std;
     6 const int NUM = 26;
     7 #define MAX 200
     8 int main()
     9 {
    10     //freopen("F:\\input.txt","r",stdin);
    11     
    12     int i,j;
    13     int res[2][NUM];
    14     memset(res,0,sizeof(int)*NUM*2);
    15     
    16     char str[2][MAX];
    17     for(i = 0 ; i < 2; i++) cin>>str[i];
    18     
    19     for(i = 0; i < 2; i++)
    20     {
    21         int len = strlen(str[i]);
    22         for(j = 0; j < len; j++)
    23         {
    24             res[i][(str[i][j]-'A')]++;
    25         }
    26     }
    27     
    28     for(i = 0; i < NUM; i++)
    29     {
    30         for(j = 0; j < NUM; j++)
    31         {
    32             if(res[0][i] == res[1][j]) break;
    33         }
    34         if(j < NUM) res[1][j] = -1;
    35         else break;
    36     }
    37     if(i < NUM) cout<<"NO"<<endl;
    38     else cout<<"YES"<<endl;
    39     
    40     return 0;
    41 }

    4.method

    (1) statics the character num

  • 相关阅读:
    10 个深恶痛绝的 Java 异常。。
    为什么公司宁愿 25K 重新招人,也不给你加到 20K?原因太现实……
    推荐一款代码神器,代码量至少省一半!
    Spring Cloud Greenwich 正式发布,Hystrix 即将寿终正寝。。
    hdu 3853 LOOPS(概率 dp 期望)
    hdu 5245 Joyful(期望的计算,好题)
    hdu 4336 Card Collector(期望 dp 状态压缩)
    hdu 4405 Aeroplane chess(概率+dp)
    hdu 5036 Explosion(概率期望+bitset)
    hdu 5033 Building (单调栈 或 暴力枚举 )
  • 原文地址:https://www.cnblogs.com/mobileliker/p/3125337.html
Copyright © 2011-2022 走看看