码迷,mamicode.com
首页 > 其他好文 > 详细

刷题记录--UVa213 Message Decoding

时间:2020-02-11 11:28:45      阅读:92      评论:0      收藏:0      [点我收藏+]

标签:BMI   调用   cst   完成   没有   cal   tchar   string   break   

  紫书上的思路我觉得很不错,尤其是数据存储和调用的方式,值得学习。

  下面的码是我看了之后自己独立完成了,但也废了不少功夫。

  未注意格式,也没有submit,可能会wa,但结果应该是正确的。

#include<cstdio>
//#define LOCAL
#include<cstring>
#include<iostream>
using namespace std;

int code[8][1<<8];

int readchar(void){
    for(;;){
    int ch=getchar();
    if(ch!=\n&&ch!=\r)return ch;
    }
}

int readheader(void){
    memset(code,0,sizeof(code));
    code[1][0]=readchar();
    for(int len=2;len<8;len++){
        for(int i=0;i<(1<<len)-1;i++){
            int ch=getchar();
            if(ch==EOF)return 0;
        //    cout<<"debug"<<endl;
            if(ch==\n||ch==\r)return 1;
            code[len][i]=ch;
        }    
    }
}

int readint(int x){
    int num=0;
    while(x--){
        num=2*num+readchar()-0;
    }
    return num;
}


int main(){
//    freopen("input.txt","r",stdin);
    #ifdef LOCAL
    freopen("input.txt","r",stdin);
    #endif
    while(readheader()){
//        cout<<"debug"<<endl;
        for(;;){
            int len=readint(3);
            if(len==0)break;
//            while(int i=readint(len)!=(1<<len)-1){  //while里不能定义变量,我第一次是因为这个错了 
//                putchar(code[len][i]);
//            }        
            for(;;){
                int v=readint(len);
                if(v==(1<<len)-1)break;
//                cout<<"debug"<<endl;
                putchar(code[len][v]);
            }
        }
        putchar(\n);
    }
    return 0;
}

 

刷题记录--UVa213 Message Decoding

标签:BMI   调用   cst   完成   没有   cal   tchar   string   break   

原文地址:https://www.cnblogs.com/hardworkingshow/p/12294104.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!