1. 程式人生 > >UVa 213 資訊解碼Message Decoding

UVa 213 資訊解碼Message Decoding

不是難題,但卡了我一段時間
看了劉汝佳的書 慢慢的就明白了
主要由對編碼串的處理構成 這部分相信大家看程式碼都能懂
AC程式碼(和書上差不多,但算是一個總結吧)

#include <iostream>
#include <cstring>
#include <cstdio>
#include <cstdlib>
#include <algorithm>
#include <vector>
#include <map>

using namespace std;
char code[8][1<<8
]; int readchar() { while(1) { int c=getchar(); if(c!='\n' && c!='\r') return c; } } int readlen(int l) { int v=0; while(l--) { v=v*2+readchar()-'0'; } return v; } int readcodes() { memset(code,0,sizeof(code));//這一步第一次時掉了 code[1][0
]=readchar(); for(int l=2;l<8;l++) { for(int u=0;u<(1<<l)-1;u++) { int buffer; buffer=getchar(); if(buffer==EOF) return 0; if(buffer=='\n' || buffer=='\r') return 1; code[l][u]=buffer; } } return
1; } int main() { freopen("1.in","r",stdin); freopen("1.out","w",stdout); while(readcodes()) { while(1) { int len=readlen(3); if(len==0) break; while(1) { int kagamin=readlen(len); if(kagamin==(1<<len)-1) break; printf("%c",code[len][kagamin]); } } printf("\n"); } return 0; }

相關推薦

UVa 213 資訊解碼Message Decoding

不是難題,但卡了我一段時間 看了劉汝佳的書 慢慢的就明白了 主要由對編碼串的處理構成 這部分相信大家看程式碼都能懂 AC程式碼(和書上差不多,但算是一個總結吧) #include <ios

例題 4-4 資訊解碼 (Message Decoding) UVa 213

題意: 給一個編碼頭和一串編碼(編碼可以換行),編碼頭根據以下規則對應編碼{  考慮下面的01串:  0,00,01,10,000,001,010,101,110,0000,0001.....首先是長度為1的串,然後是長度為二的串,以此類推。並且每一段長度的數字從0到(1&

UVa 213 Message Decoding (資訊解碼)

題意: 編寫一個解碼程式,對數字串進行解碼。 輸入第一行是一個解碼key。key從左到右每個字元分別對0,00,01,10,000,001,011,100,101,110,0000,0001,.

UVA-213-Message Decoding 資訊編碼 基礎模擬題 直觀的新手思路+詳細註釋

題意: 1. 首先輸入編碼頭,即一串字串 2. 接下來時只有0和1的串,要求就是對串進行操作然後輸出對應的編碼串 3. 每次編碼先用三個字元計算二進位制和判斷接下來的串時多少個字元為一個編碼 4. 每次編碼遇到全為1的時候結束進行下一次串長判斷(即重複3),直到串長判斷為0

UVa 213 -- Message Decoding

sci .... ems putchar size ascii碼 () Coding .net Message Decoding simple input TNM AEIOU0010101100011101000100111011001111000 $#**\010

UVa 213 Message Decoding (信息編碼)

== cout HA etc 換行符的處理 ostream flag 回歸 Coding 該題目作為放假回歸正軌的第一道正式做的題目,被卡了好久,唉,怪我有顆太浪的心 解題思路: 1、把編碼頭用二維字符數組存儲起來,a[x][y]存儲對應的字符,x表示編碼的長度,y表示編碼

紫書——Message Decoding UVA - 213

題解: 這道題目的精華點就是一開始字元跟二進位制配對的方法。 書本上採用了二維陣列來解決,第1個可以有1個,第2個可以有3個,如此類推,然後之後的就是考你細心程度了,注意getchar和回車的判斷。   書上的程式碼大致如下: #include <iostre

UVA - 213 Message Decoding

Message Decoding  UVA - 213  題目傳送門 emmmm,此題按照紫書上的思路來即可,要麼太複雜 AC程式碼: #include <cstdio> #include <iostream> #include &

uva 213 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  t

UVA213Message Decoding

題意:二進位制遍歷問題 每組輸入給一個編碼頭 從頭開始每個字元對應0 00 01 10 000 001 010 011 100 101 110 0000 0001……後面給一串數字 頭三個數表示後面每次讀取的長度 全為1時結束一組輸入 頭三個數為0時編碼結束 輸入樣例:

uvaoj 213 - Message Decoding(二進位制,輸入技巧)

https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=149 跨行讀字元的函式readchar()  可以學習一下 把編碼理解成二進位

213 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 mes

[算法競賽入門經典]Message Decoding,ACM/ICPC World Finals 1991,UVa213

decode 作用 入門 直接 line 所有 字符 for binary Description Some message encoding schemes require that an encoded message be sent in two parts. The

UVA - 213解題報告

輸入 報告 題目 編碼 nbsp 每一個 一個 uva pro 題目鏈接:https://cn.vjudge.net/problem/UVA-213 Sample input TNM AEIOU 0010101100011 1010001001110110011 11000

Message Decoding

一、題目大意: 編寫一個解碼程式,對字串進行解碼 解碼規則,根據k,value解碼。 其中k值根據0,00,01,10,000,001,011,100,101,110,0000,0001,…,1101,1110,00000,…序列得到 ,且最大長度不超過7,不存

將base64格式的字型資訊解碼成可用的字型檔案

好奇檢查了一下這是什麼字型: 。。好吧我確定沒有這個字型,那就是自定義的字型了。 檢查了HTTP請求,有這麼一個請求: 雖然請求的都是字型檔案但是第一個明顯更清新脫俗一些,他是base64編碼的,data:font/opentype;base64,T1RU

資訊解碼

題目: 考慮下面的01串序列: 0,00,01,10,000,001,010,011,100,101110,0000,0001,...,1101,1110,00000,... 首先是長度為1的串,然後是長度為2的串,依此類推。如果看成二進位制,相同長度的後一個串等於前一

例題4-4 資訊解碼 UVa213

int readchar(){     char ch;     while(1){         ch=getchar();         if(ch!='\r'&&ch!='\n')             return ch;     } } int readcodes(){    

uva 213

字串處理問題 單個字元的處理,略過換行符直接讀取內容。 對樣例的分析 001 0 1 T 011 000 111 A 010 00 10 01 11 N ' ' M

UVA213 UVALive5152 Message Decoding【密碼】

 Some message encoding schemes require that an encoded message be sent in two parts. The first part, called the header, contains the chara