思路来自紫书。。。开始时的思路估计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. PHP的PDO

    PDO中包含三个预定一类:PDO.PODStatement和PDOException. 1.PDO类 PDO类代表一个PHP和数据库之间的连接,PDO类所拥有的方法如下: PDO:构造器,构建一个新的 ...

  2. C4.5学习及源码阅读

    下面是C4.5源码的下载地址: http://www.rulequest.com/Personal/ 这里先立一个flag,后续更新...... 恕我孤陋寡闻,第一次看到这样的主函数: #includ ...

  3. BW顾问必需要清楚的:时间相关数据建模场景需求分析

    声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...

  4. Linux系统下配置Tomcat

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

  5. 生成yyMMddHHmmssSS时间戳代码作为唯一主键值

    import java.sql.Time; import java.text.DateFormat; import java.text.ParseException; import java.text ...

  6. 跨站请求伪造 CSRF / XSRF<二:应用>

    防御的方法主要有两种<java示例> 1.检查Referer字段 HTTP头中有一个Referer字段,这个字段用以标明请求来源于哪个地址.在处理敏感数据请求时,通常来说,Referer字 ...

  7. 深入学习 celery

    一.amqp交换 参考链接: http://www.cnblogs.com/ajianbeyourself/p/4950758.html

  8. VB模拟键盘输入的N种方法

    VB模拟键盘输入的N种方法http://bbs.csdn.net/topics/90509805hd378发表于: 2006-12-24 14:35:39用VB模拟键盘事件的N种方法 键盘是我们使用计 ...

  9. 可以结合react的ui组件

    https://ant.design/components/switch-cn/

  10. css3动画参数解释

    @keyframes规定动画.animation 所有动画属性的简写属性,除了 animation-play-state 属性. ----------------------------------- ...