P3982 龙盘雪峰信息解析器

    • 164通过
    • 2.6K提交
  • 题目提供者 孤独·粲泽
  • 评测方式 云端评测
  • 标签 2017
  • 难度 普及+/提高
  • 时空限制 1000ms / 128MB

题解

  • 提示:收藏到任务计划后,可在首页查看。
  • 最新讨论 显示

    推荐的相关题目 显示

    题目背景

    薄雾笼罩,远方的雪峰无限迷人,感慨之间,阴影将至。

    与真程海洋毗邻的龙盘雪山与我们保持着联系,但是龙盘雪山的通讯员常常把信息进行奇怪的加密,然后要我们来破译,很是谨慎。但是,久而久之,我们的通讯员不耐烦了,差点掀桌子砸凳子不干了。所以我们想做一个信息解析器,就是这样。

    题目描述

    龙盘雪峰传来的信息都加密成了复杂的代码,我们需要你来做一个程序,按照解析规则解密这些代码,翻译成文字信息,以下是其解析规则。

    该代码应为一连串的二进制码(只存在$ 0 $ 和$ 1 $ ,做加法时满$ 2 $ 进$ 1 $ ,每个$ 0 $ 或$ 1 $ 占一个字符),每八个字符为一单元。

    每个单元都有这样的规则:一、若【前三个字符】为$ 101 $ 时表示需要转换为字母$ A-Z $ ,字母$ A $ 代码为$ 10100000 $ ,字母$ C $ 为$ 10100010 $ ,$ 26 $ 个大写字母以字母表顺序按照这种规律顺序排列,分别对应一个二进制代码。二、若【前三个字符】为$ 111 $ ,则该单元翻译为空格。三、若【第一个字符】为$ 0 $ ,则该单元表示一个数,待定与下一个单元所表示的数做加法。加法过程中,这两个单元应转换为十进制,然后除以$ 2 $ 并舍弃余数才相加,加法结束后,这两个单元做加法得到的结果即为这两个单元的翻译结果(翻译结果用十进制表示,这两个单元就都翻译完毕了,详见样例$ 3 $ )。

    由于保险,龙盘雪峰经常发送【假代码】,而假代码则不存在上述规则,如果是假代码,输出$ Error $ 。

    输入输出格式

    输入格式:

    输入仅一行,包含一串连续的代码(长度不超过$ 171111 $ 个字符),中间不会出现空格,保证不出现空代码。

    输出格式:

    输出仅一行,包含一个字符串,是二进制代码按照上述规则翻译后的文字信息。

    若该二进制代码中存在假代码信息,则输出$ Error $ 。

    输入输出样例

    输入样例#1: 复制
    1010000011100000101011111010100010100110
    输出样例#1: 复制
    A PIG
    输入样例#2: 复制
    1
    输出样例#2: 复制
    Error
    输入样例#3: 复制
    0000001000000010000000100000001010100000
    输出样例#3: 复制
    22A

    说明

    样例一说明:

    $ 10100000 $ 代表$ A $ ,下一个单元开头为$ 111 $ ,那么翻译为空格,再下一个单元开头为$ 101 $ ,后接$ 01111 $ ,比$ A $ 多了$ 2^0+2^1+2^2+2^3=15 $ ,那么代表的就是$ P $ 了,以此类推,最后翻译为$ A\;PIG $ 。

    注意:

    对于规则一的解释:$ 26 $ 个大写字母按照字母表的顺序排列,以$ A=10100000 $ 开始,往后的每一个字母的二进制码的值都比前面一个字母的二进制码的值多$ 1 $ (注意满二进一);

    此题目有误解题意的现象,请一定要看清楚题目,搞清楚逻辑关系,注意细节!

    提示
    标程仅供做题后或实在无思路时参考。
    请自觉、自律地使用该功能并请对自己的学习负责。
    如果发现恶意抄袭标程,将按照I类违反进行处理。