• noip模拟赛 enc


    【问题背景】
    zhx 和他的妹子聊天。
    【问题描述】
    考虑一种简单的加密算法。
    假定所有句子都由小写英文字母构成, 对于每一个字母, 我们将它唯一地映
    射到另一个字母。 例如考虑映射规则:
    a->b, b->c, c->d, d->a. 那么单词 bad 就会被映射为 cba。这个映射规则的
    映射规则为: b->a, c->b, d->c, a->d。对于密文 cba,我们很容易将它解密为 bad
    当然, 这样的映射需要保证每一个字母映射到的字母是不同的(即不可以出
    现两个不同的字母映射到同一个字母, 否则将会无法解密)。
    一种常见的密码攻击方式被称为已知明文攻击。 具体地, 在你不知道映射表
    的情况下, 给你一段明文和对应的密文, 你可以推导出一些的映射规则, 下一次
    你收到一条密文, 你就可能可以解密它。 现在你需要完成这样的一个系统。
    【输入格式】
    第一行包含一个字符串, 仅包含小写字母, 表示一段明文。
    第二行包含一个字符串, 仅包含小写字母, 表示这段明文对应的密文, 保证
    两行长度相同。
    第三行包含一个字符串,仅包含小写字母, 表示你需要解密的密文。
    【输出格式】
    输出共一行, 表示输入中第三行密文对应的明文。 如果不能解密, 输出
    “ERROR”(不包含引号)。注意输入可能出现不自恰的情况。
    【样例输入】
    ab
    cc
    cc
    【样例输出】
    ERROR
    【样例输入】
    ab
    ab

    c
    【样例输出】
    ERROR
    【样例输入】
    abcde
    bcdea
    cad
    【样例输出】
    bec
    【数据范围与规定】
    对于100%的数据, 所有字符串长度<=1000

    分析:模拟题,用map即可.

    #include <map>
    #include <queue>
    #include <cstdio>
    #include <cstring>
    #include <iostream>
    #include <algorithm>
    
    using namespace std;
    
    typedef long long ll;
    
    char s1[1010], s2[1010], s3[1010];
    int len1, len2, len3, use[200], cnt;
    map<char, char> p;
    
    int main()
    {
        scanf("%s", s1 + 1);
        scanf("%s", s2 + 1);
        scanf("%s", s3 + 1);
        len1 = strlen(s1 + 1);
        len2 = strlen(s2 + 1);
        len3 = strlen(s3 + 1);
        for (char i = 'a'; i <= 'z'; i++)
            p[i] = ';';
        for (int i = 1; i <= len2; i++)
        {
            if (p[s2[i]] == ';')
                p[s2[i]] = s1[i];
            else
                if (p[s2[i]] != s1[i])
                {
                    printf("ERROR
    ");
                    return 0;
                }
        }
        for (int i = 1; i <= len3; i++)
        {
            if (p[s3[i]] == ';')
            {
                printf("ERROR
    ");
                return 0;
            }
        }
        for (int i = 1; i <= len3; i++)
            printf("%c", p[s3[i]]);
    
        return 0;
    }
  • 相关阅读:
    linux 硬盘满了 怎么优化
    Mysql 忘记密码 Linux
    嵌入式新闻早班车-第18期
    《安富莱嵌入式周报》第225期:2021.08.09--2021.08.15
    【DSP教程】第43章 IIR滤波器的Matlab设计
    【DSP教程】第42章 IIR无限冲击响应滤波器设计
    嵌入式新闻早班车-第17期
    《安富莱嵌入式周报》第224期:2021.08.02--2021.08.08
    H7-TOOL重大更新,发布WiFi版,新增暗黑主题,脱机烧录增加大唐半导体,自此高速USB,以太网和WiFi方式全部打通(2021-08-07)
    【STM32H7的DSP教程】第41章 FIR滤波器的群延迟(重要)
  • 原文地址:https://www.cnblogs.com/zbtrs/p/7736250.html
Copyright © 2020-2023  润新知