uva 213 Message Decoding
思路来自紫书。。。开始时的思路估计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的更多相关文章
- UVa 213 Message Decoding(World Finals1991,串)
Message Decoding Some message encoding schemes require that an encoded message be sent in two part ...
- UVA 213 Message Decoding 【模拟】
题目链接: https://cn.vjudge.net/problem/UVA-213 https://uva.onlinejudge.org/index.php?option=com_onlinej ...
- UVA - 213 Message Decoding (输入字符串并对单个字符进行操作的输入输出)
POINT: 关于表示一个编码:利用code字符数组表示一个编码字符,其中code[len][val]表示长度为len,二进制值为val的字符: 主程序如下: #include <iostrea ...
- 【每日一题】 UVA - 213 Message Decoding 模拟解码+读入函数+阅读题
题意:阅读理解难度一道比一道难orz.手摸了好久样例 题解: 读入:大循环用getline读入header顺便处理一下, 里面再写两重循环,外层一次读三个串,内层一次读num个串. 之后就查表,线性 ...
- uva 213 - Message Decoding (我认为我的方法要比书上少非常多代码,不保证好……)
#include<stdio.h> #include<math.h> #include<string.h> char s[250]; char a[10][250] ...
- uvaoj 213 - Message Decoding(二进制,输入技巧)
https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem& ...
- Message Decoding UVA - 213
Some message encoding schemes require that an encoded message be sent in two parts. The fifirst par ...
- 【例题 4-4 uva 213】Message Decoding
[链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 输入的二进制长度最长为7 所以得开个sta[7][2^7]的样子才存的下所有的字符的.. 定义这么一个数组当字典. 然后一个字符一个 ...
- UVa 213,World Finals 1991,信息解码
题目链接:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem ...
随机推荐
- Javascript中的集合
集合是由一组无序且唯一(即不能重复)的项组成 function Set() { var items={}; this.has=function(value){ //return value in it ...
- Django + mysql 快速搭建简单web投票系统
了解学习pyhton web的简单demo 1. 安装Django, 安装pyhton 自行百度 2. 执行命令创建project django-admin.py startproject mysi ...
- [地图SkyLine二次开发]关于IE内存限制问题(1G)
相信很多人也遇到过同样的问题,地图加载中,IE占用的内存一直增加,到了1G多一些的时候,IE就崩溃了. 在网上查阅了一番,有很多结果,下面归纳一下: a).64bit的IE最多可达到4G的内存,但Sk ...
- jQuery.first() 函数
first() 函数详解 函数 获取当前对象的第一个元素 语法 $selector.first() 返回值 返回值为一个对象 实例说明 代码 <!DOCTYPE html><html ...
- CSS3中的伪类选择器详解
类选择器和伪类选择器区别 类选择器我们可以随意起名,而伪类选择器是CSS中已经定义好的选择器,不可以随意起名. 伪类选择器以及伪元素 我们把它放到这里 p.aaas{ text-align: le ...
- table清除样式大全
table{width:100%;text-align:center;border-collapse:collapse;border-spacing:1;border-spacing:0; }tabl ...
- PHP加速处理插件 Zend Optimizer,Zend Guard Loader 和 Zend Opcache 区别
PHP 5.3.X 以前版本 为 Zend Optimizer PHP 5.3.X 之后 更名为 Zend Guard Loader 可以帮助php执行加密后的php代码 安装实例以Ubu ...
- 如何判断Javascript对象是否存在
Javascript语言的设计不够严谨,很多地方一不小心就会出错. 举例来说,请考虑以下情况. 现在,我们要判断一个全局对象myObj是否存在,如果不存在,就对它进行声明.用自然语言描述的算法如下: ...
- mina-http之坑
TCP是流式协议,不保证一次通信传输完整的包,当这种情况发生在mina-http时会产生严重的bug,图中红框部分只是将前后收到的数据拼在一起,但下面处理的还是最近收到的不完整的msg:此为大坑! 轻 ...
- c#数据绑定(4)——向查询中添加参数
本实例主要练习了ADO.Net 连接到外部数据库的基础上,向查询中添加参数.使用的是ACCESS数据库. 在ACCESS数据库中可以用MSSQL的形式定义操作字符串,也可以采用OLEDB的形式. MS ...