思路来自紫书。。。开始时的思路估计100行+,果断放弃!
关键:
1.正确提取出函数!
   initmap():初始化字母与整数的映射。
   returnint(x):向后读取x位,并转换为十进制数返回。
   enterfilter():获取下个字符,跳过回车。
   所以,
   不断initmap()构建映射表直到结尾;
   对于每组编码表,
   使用returnint(x)一直读取并返回;
   这其中又涉及到回车的干扰,所以使用enterfilter()。
2.逐个字符读取的应用。
   其实还很方便啦~\(≧▽≦)/~。。之前有些畏惧心理~(害怕.jpg)
3.映射表的构建
   使用(对应二进制码)长度与该长度下该字母的序数来定位,可以很方便使用
   很好用!
4.二进制转十进制:乘二加下一位。。。并循环!

#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
const int maxn=;
char letter[maxn][<<maxn]; char enterfilter()
{
for(;;)
{
char x=getchar();
if(x!='\n'&&x!='\r')return x;
}
}
int returnint(int x)
{
int ans=;
while(x--)
ans=ans*+enterfilter()-'';
return ans;
}
bool initmap()
{
memset(letter,,sizeof(letter));
letter[][]=enterfilter();/////to filter the line-break remained
if(letter[][]==EOF)return false;
for(int i=;i<=maxn;i++)
for(int j=;j<((<<i)-);j++)
{
char ch=getchar();
if(ch=='\n'||ch=='\r')return true;
letter[i][j]=ch;
}
}
int main()
{
while(initmap())
{
for(;;)
{
int len=returnint();
if(!len)break;
for(;;)
{
int x=returnint(len);
if(x==(<<len)-)break;
printf("%c",letter[len][x]);
}
}
printf("\n");
} return ;
}

uva 213 Message Decoding的更多相关文章

  1. UVa 213 Message Decoding(World Finals1991,串)

     Message Decoding  Some message encoding schemes require that an encoded message be sent in two part ...

  2. UVA 213 Message Decoding 【模拟】

    题目链接: https://cn.vjudge.net/problem/UVA-213 https://uva.onlinejudge.org/index.php?option=com_onlinej ...

  3. UVA - 213 Message Decoding (输入字符串并对单个字符进行操作的输入输出)

    POINT: 关于表示一个编码:利用code字符数组表示一个编码字符,其中code[len][val]表示长度为len,二进制值为val的字符: 主程序如下: #include <iostrea ...

  4. 【每日一题】 UVA - 213 Message Decoding 模拟解码+读入函数+阅读题

    题意:阅读理解难度一道比一道难orz.手摸了好久样例 题解: 读入:大循环用getline读入header顺便处理一下,  里面再写两重循环,外层一次读三个串,内层一次读num个串. 之后就查表,线性 ...

  5. uva 213 - Message Decoding (我认为我的方法要比书上少非常多代码,不保证好……)

    #include<stdio.h> #include<math.h> #include<string.h> char s[250]; char a[10][250] ...

  6. uvaoj 213 - Message Decoding(二进制,输入技巧)

    https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem& ...

  7. Message Decoding UVA - 213

     Some message encoding schemes require that an encoded message be sent in two parts. The fifirst par ...

  8. 【例题 4-4 uva 213】Message Decoding

    [链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 输入的二进制长度最长为7 所以得开个sta[7][2^7]的样子才存的下所有的字符的.. 定义这么一个数组当字典. 然后一个字符一个 ...

  9. UVa 213,World Finals 1991,信息解码

    题目链接:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem ...

随机推荐

  1. Spark学习(二) -- Spark整体框架

    标签(空格分隔): Spark 还记得上次的wordCount程序嘛?通过这个小程序,我们来一窥Spark的框架是什么样子的. sc.textFile("/usr/local/Cellar/ ...

  2. Python进阶(三)--global和类属性

    global关键字 一句话概括为:告诉python解释器,global声明的变量为全局作用域内定义的变量.解释器就会到全局作用域内寻找global定义的变量. python的类属性 类属性相当于其他O ...

  3. hihoCoder 1427 : What a Simple Research(大㵘研究)

    hihoCoder #1427 : What a Simple Research(大㵘研究) 时间限制:1000ms 单点时限:1000ms 内存限制:256MB Description - 题目描述 ...

  4. SpringMVC生成任意文件,访问链接即下载

    原理上讲就是返回的 ResponseEntity<byte[]> 形式的值就可以了 @RequestMapping("/api/watermark_download") ...

  5. Linux系统下配置Tomcat

    1.将下载好的tomcat文件拷贝至/usr/java文件夹中: cp apache-tomcat-7.0.72.tar.gz /usr/java 2.进入/usr/java文件夹: cd /usr/ ...

  6. EasyUI-validatebox 自定义validType验证

    根据项目要求,对于一些信息的验证也越来越特殊,当你发现EasyUI-validatebox提供的常用的validType验证类型已经满足不了你时,你可以选择自己自定义新的validType来完成信息验 ...

  7. html4,xhtml,html5发展历史

    SGML SGML 是一种很强大但很复杂的标记语言,HTML.XML 就是从中衍生出来的.SGML 的例子如下:<QUOTE TYPE="example"> typic ...

  8. mysql mybatis-generator plugin 有page实体类的分页

    page实体类 package cn.zsmy.tmp; import java.io.Serializable; /** * 分页对象. * */public final class Page im ...

  9. C# 6.0 Feature list

    Feature Example C# VB Auto-property initializers public int X { get; set; } = x; Added Exists Getter ...

  10. git的常用命令

    简介  上篇讲解git的博客,在centos6.5中安装完成了github客户端,接下来我们来熟悉git的操作命令 1.查看自己机器中安装的git版本 [root@jacky conf]# git - ...