01串压缩编码
   

  【问题描述】

  计算机中的文件都是由一串01串组成的,我们可以通过某种方式压缩它。

  我们可以用一个十进制数串(长度不超过1000),代表一个长度不超过8000的01串。例如十进制串15 1 128代表01串00001111 00000001 10000000。01串可以划分成连续的片段(即连续成段的0或1),如上例可划分成0000 1111 0000000 11 0000000五个片断。我们可以用一个字节(8位)的二进制表示一个片断,表示方法为:字节的最高位代表此片段的颜色是0还是1,低7位代表此片段的长度,所以上例就可以表示为:00000100 10000100 00000111 10000010 00000111。注意到现在有5个字节,每个字节可以用一个不超过255的十进制数表示,所以我们又可以把它表示成4 132 7 130 7。

  我们再看看整个编码压缩过程:
  
    
 
  可以保证所有输入数据连续的0或1片段的长度均小于128。

  【输入】

  输入数据只有一行,第一个数N是一个可被8整除的不大于8000的自然数,代表编码的01串长度。接下来N/8个十进制整数。

  【输出】

  输出只有一行,输出最后的十进制压缩编码。

  【样例输入】

  24 15 1 128

  【样例输出】

  4 132 7 130 7
 
   

 
网站导航 | 关于曙光 | 联系我们 | 请提意见
Copyright © FuJian Sunshine Educational Info. Co.,Ltd.
福建曙光教育资讯有限公司 版权所有