Loading

对代码int code[8][1<<8]详解

ACM/ICPC World Finals 1991中有一段代码:

……
int code[8][1<<8];
int readcodes(){……}
……
  • 1<<8是位操作,是将1左移8位,相当于:

\[1*2^8=256 \]

也就是int code[8][256];

因为在程序中,是将十进制先转换为了二进制;

下面还有一段代码:

int len = readint(3);
int v=readint(len);//读取二进制代码,并且转换为int类型
……
if(v == (1 << len) - 1) break;
putchar(code[len][v]];
……
  • len从2开始到7,则(1<<len)-1:

    • 3 --->2 11
    • 7 --->3 111
    • 15 --->4 1111
    • 31 --->5 11111

    …………

源算法代码

posted @ 2020-03-27 16:55  平头猿小哥  阅读(1018)  评论(0编辑  收藏  举报