标签: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; }
标签:BMI 调用 cst 完成 没有 cal tchar string break
原文地址:https://www.cnblogs.com/hardworkingshow/p/12294104.html