UVa 213 - Message Decoding
Posted nicetomeetu
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了UVa 213 - Message Decoding相关的知识,希望对你有一定的参考价值。
将字符用01串进行编码,并把下面的01串转换成对应字符串
打了一遍书上的样例程序..
读取单个字符的函数来忽略换行符还是很神奇的
1 #include <iostream> 2 #include <cstdio> 3 #include <cstring> 4 using namespace std; 5 char code[8][1<<8]; 6 char readchar(){ 7 while(1){ 8 char ch=getchar(); 9 if(ch!=‘\n‘&&ch!=‘\r‘) return ch; 10 } 11 } 12 int readint(int c){ 13 int v=0; 14 while(c--) v=v*2+readchar()-‘0‘; 15 return v; 16 } 17 int readcode(){ 18 memset(code,0,sizeof(code)); 19 code[1][0]=readchar(); 20 for(int len=2;len<=7;len++){ 21 for(int i=0;i<(1<<len)-1;i++){ 22 char ch=getchar(); 23 if(ch==EOF) return 0; 24 if(ch==‘\n‘||ch==‘\r‘) return 1; 25 code[len][i]=ch; 26 } 27 } 28 return 1; 29 } 30 int main() 31 { 32 while(readcode()){ 33 while(1){ 34 int len=readint(3); 35 if(!len) break; 36 while(1){ 37 int v=readint(len); 38 if(v==(1<<len)-1) break; 39 putchar(code[len][v]); 40 } 41 } 42 puts(""); 43 } 44 } 45 /* 46 TNM AEIOU 47 0010101100011 48 1010001001110110011 49 11000 50 $#**51 010000010110110001110010100 52 */
以上是关于UVa 213 - Message Decoding的主要内容,如果未能解决你的问题,请参考以下文章
[UVa 213]Message Decoding,ACM/ICPC World Finals 1991 信息解码
UVa 213 Message Decoding (信息编码)
[算法竞赛入门经典]Message Decoding,ACM/ICPC World Finals 1991,UVa213