zoukankan      html  css  js  c++  java
  • 4_4 信息解码(UVa213)<二进制:输入技巧与调试技巧>

    消息编码方案要求在两个部分中发送一个被编码的消息。第一部分:称为头,包含消息的字符。第二部分包含一个模式
    表示信息。你必须写一个程序,可以解码这个消息。

    你的程序的编码方案的核心是一个序列的“0和1”的字符串 。

    0, 00, 01, 10, 000, 001, 010, 011, 100, 101, 110, 0000, 0001, . . . , 1011, 1110, 00000, . . .

    序列中长度为1的1个,长度为2的3个,长度为3的7个,长度为4的15个。如果相邻两个具有相同的长度,第二可从第一个加1(2进制)。注意有序列中没有全都是1的串。

    键被映射到标题中的字符。也就是说,第一个键(0)映射在标题的第一个字符,第二键(00)在头的二字符,k键映射到标头中的k个字符。例如,假设标题是:AB#TANCnrtXc

    然后0映射到A,00映射到B,01映射到#,10映射到T,000映射到A,…,110映射到X,0000映射到c.

    该编码的信息包含0和1的和可能的回车,这是被忽略。消息分为段。一个段的前3位数字为二进制表示在段的键的长度。例如,如果前3位数字为010,则其余该段由长度为2(00,01,或10)。段的结束是1的字符串
    在段中的键长度相同。因此一段长度2的键是终止11。整个编码的信息被000终止(这将意味着一段段其中的按键有0个)。通过将该段中的键进行翻译,该消息被解码的标题字符已被映射。

    输入:

    输入文件包含多个数据集。每个数据集包含一个标题,这是在一个单独的行就其本身而言,和一个消息,它可能会延续几行。头的长度是有限的唯一的事实,有一个关键字符串的最大长度为7(111的二进制)。如果有多个在头一个字符的副本,然后几个键将映射到字符。编码信息仅包含0和1的,这是一个合法的编码,根据所描述的计划。那是,信息段的开始与适当的序列的序列长度和位数1,在任何给定的段的键都是相同的长度,并且它们都对应于字符标题。该消息以000终止

    输出:

    对于每个数据集,您的程序必须在一个单独的行上写它的解码信息。
    信息之间不要留空白行。

     样例输入:

    TNM AEIOU
    0010101100011
    1010001001110110011
    11000
    $#**
    0100000101101100011100101000

    样例输出:

    TAN ME

    ##*$

  • 相关阅读:
    在Flex (Flash)中嵌入HTML 代码或页面—Flex IFrame
    让Android App启动更协调
    最短路+状态压缩dp(旅行商问题)hdu-4568-Hunter
    weblogic 内存 及 内存溢出
    Mysql或者Hive数据行变成列
    使用sphinx生成美观的文档
    adb 功能大全
    Problem B: Excuses, Excuses!
    2014acm亚洲区域赛陕西赛总结
    Cookie的写入,和读取
  • 原文地址:https://www.cnblogs.com/jjzzx/p/5343954.html
Copyright © 2011-2022 走看看