uvaoj 213 - Message Decoding(二进制,输入技巧)
2024-09-21 09:33:58
https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=149
跨行读字符的函数readchar() 可以学习一下
把编码理解成二进制,用(len,value)这个二元组来表示一个编码,其中len是编码长度,value是编码对应的十进制数值
用code[len][value]保存这个编码所对应的字符
#include<bits/stdc++.h>
using namespace std;
int code[][<<];
int readchar()
{
for(;;)
{
int ch=getchar();
if(ch!='\n'&&ch!='\r')return ch;
}
}
int readint(int c)//读取接下来c个二进制字符,并返回十进制
{
int v=;
while(c--)v=v*+readchar()-'';
return v;
}
int readcodes()
{
memset(code,,sizeof(code));
code[][]=readchar();
for(int len=;len<=;len++)
{
for(int i=;i<(<<len)-;i++)
{
int ch=getchar();
if(ch==EOF)return ;
if(ch=='\n'||ch=='\r')return ;
code[len][i]=ch;
}
}
return ;
}
int main()
{
while(readcodes())
{
for(;;)
{
int len=readint();
if(len==)break;
for(;;)
{
int v=readint(len);
if(v==(<<len)-)break;
putchar(code[len][v]);
}
}
putchar('\n');
}
return ;
}
最新文章
- ASP.NET Core 中文文档 第四章 MVC(3.6.1 )Tag Helpers 介绍
- 期望DP
- Android的消息处理机制Looper,Handler,Message
- 148. Sort List
- MySQL重置密码(OSX)
- 【前端JS、后台C#】编码解码。
- Kill命令模拟1
- PHP Curl模拟登录并抓取数据
- ngRx 官方示例分析 - 1. 介绍
- BZOJ 2142: 礼物 [Lucas定理]
- 【BZOJ4407】于神之怒加强版(莫比乌斯反演)
- sqlserver 判断字段是否为空字符串或者null
- VS2017下使用Git遇到的问题
- Mha-Atlas-MySQL高可用
- 码农眼中的数学之~矩阵专栏(附Numpy讲解)
- maya2018卸载/安装失败/如何彻底卸载清除干净maya2018注册表和文件的方法
- C# 数据结构基础-实现循环队列
- Java知多少(43)异常处理基础
- github如何删除新建仓库(致新手)
- CheckFail设计很垃圾