Uva 213】的更多相关文章

题目链接:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=149 紫书P83 解题报告: 思路很巧.每个字符这样记录,由于同一个值可能有好几种对应,比如0,00,000,这样用一个二维数组code[len][v] 记录字符. 二进制再熟悉一遍.扫一遍长度为len的二进制所有数值.for(int v = 0;v<(1<<le…
题目链接: https://cn.vjudge.net/problem/UVA-213 https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=149 题目大意: 给一种编码方式,0,00,01,10,000,...,依次对应一个字符: 一开始需要读入3位长的2进制数来表示接下来的解码长度L,接下来读L位,解码,直到读入L个1停止. 接下来继续读解…
思路来自紫书...开始时的思路估计100行+,果断放弃!关键:1.正确提取出函数!   initmap():初始化字母与整数的映射.   returnint(x):向后读取x位,并转换为十进制数返回.   enterfilter():获取下个字符,跳过回车.   所以,   不断initmap()构建映射表直到结尾:   对于每组编码表,   使用returnint(x)一直读取并返回:   这其中又涉及到回车的干扰,所以使用enterfilter().2.逐个字符读取的应用.   其实还很方便…
POINT: 关于表示一个编码:利用code字符数组表示一个编码字符,其中code[len][val]表示长度为len,二进制值为val的字符: 主程序如下: #include <iostream> #include <sstream> #include <cstdio> #include <cstring> #include <cmath> #include <string> #include <vector> #inc…
 Message Decoding  Some message encoding schemes require that an encoded message be sent in two parts. The first part, called the header, contains the characters of the message. The second part contains a pattern that represents the message. You must…
题意:阅读理解难度一道比一道难orz.手摸了好久样例 题解: 读入:大循环用getline读入header顺便处理一下,  里面再写两重循环,外层一次读三个串,内层一次读num个串. 之后就查表,线性输出即可. 关于判断11111,我用了换底公式:log(id + 1) / log(2) == num + 1 && pow(2, log(id + 1) / log(2)) 关于读入,我写了个getnchar的函数,封装一下getchar() 虽然是final模拟(签到orz)题,码量不大嘛…
#include<stdio.h> #include<math.h> #include<string.h> char s[250]; char a[10][250]; int a1[4]; int a2[250]; char ch; int init(int len) { int tt=0; for(int i=1;i<=7;i++) { for(int j=0;j<(int)pow(2,i)-1;j++) { a[i][j]=s[tt++]; if(tt&…
题目链接:https://cn.vjudge.net/problem/UVA-213 Sample input TNM AEIOU 0010101100011 1010001001110110011 11000 $#**\ 0100000101101100011100101000 Sample output TAN ME ##*\$ 题目思想: 1.先把输入的编码按照0, 00,01, 10,000, 001,010, 011,100, 101, 110,0000, 0001,.…,1011,…
1. 问题 第一次发现新的存储方式,int code[8][1<<8]; 用于存储二进制的形式 将字符以是十进制的方式存储到数组中 如何消除 \n \r 的影响,进行多行的输入 2. 代码 #include <stdio.h> #include <string.h> //#define LOCAL // 用于存储 header int code[8][1<<8]; // read a char without \n or \r int readchar()…
题意: 出自刘汝佳算法竞赛入门经典第四章. 考虑下面的01串序列: 0, 00, 01, 10, 000, 001, 010, 011, 100, 101, 110, 0000, 0001, …, 1101, 1110, 00000, … 首先是长度为1的串,然后是长度为2的串,依此类推.如果看成二进制,相同长度的后 一个串等于前一个串加1.注意上述序列中不存在全为1的串. 你的任务是编写一个解码程序.首先输入一个编码头(例如AB#TANCnrtXc),则上述 序列的每个串依次对应编码头的每个字…