题目传送门

黑白图像压缩

题目描述

选修基础生物基因学的时候, 小可可在家里做了一次图像学试验。 她知道:整个图像其实就是若干个图像点(称作像素)的序列,假定序列中像素的个数总是 8 的倍数, 于是每八个像素可以转换成一个叫做字节的数, 从而这个表示图像的像素序列就被转换成了字节的序列。

所谓的字节就是一个八位的二进制数(当然,为了便于书写,人们经常用它的十进制形式来表示)。这八个像素从前向后依次对应于字节从高位到低位的八个位, 用 0 来表示白色像素、 1 来表示黑色像素。 这种表示方法叫做位图法。 例如字节序列 210、 0、255 表示了 8*3=24 个像素, 由于对应的二进制形式是 11010010、 00000000、11111111, 所以这 24 个像素的颜色依次是黑、 黑、 白、 黑、 白、 白、 黑、 白、白、白、白、白、白、白、白、白、黑、黑、黑、黑、黑、黑、黑、黑。

小可可想: 其实图像中存在着很多连续的同色像素段, 也许换一种方式表达图像能够减少图像的数据量。 她的思路是: 把像素按照颜色分成若干个片段, 同一个片段中各像素颜色相同, 且连续的同色像素都在同一个片段中。同时已知每个片段的最大长度小于 128。

每一个像素片段都是用一个二进制字节量来表示, 最高位表示片段中像素的颜色, 而低七位表示片段中像素的数目。注意:不存在长度为 0 的像素片段。这种表示法叫做像素片段法。

例如位图表示法的字节序列 210、 0、 255 对应的像素序列可以分成七个片段,分别是: 11、 0、 1、 00、 1、 000000000、 11111111。如果用像素片段法来表示的话,二进制字节序列应该写成 10000010、 00000001、 10000001、00000010、 10000001、 00001001、 10001000, 而其对应于十进制字节序列就是 130、 1、 129、 2、 129、 9、 136。

像素片段法是否能有效地减少图像的数据存储量呢?小可可不知道如何用数学的方法加以证明, 于是决心对手头上的图像做些试验, 看看该方法是否真的有效。 请你编写程序完成图像信息的转换, 以协助小可可完成这项试验。

输入输出格式

输入格式:

文件中以一行的形式存放了一个图像的信息。第一个数是正整数

n ( n ≤ 80000 ),表明该图像有 n 个像素。随后有n/8个十进制形式的

字节量,表示该图像的位图信息。相邻数之间用一个空白字符隔开。

输出格式:

以一行的形式输出以像素片段表示法表示的图像信息,各个数都以

十进制的形式出现,相邻数之间用一个空白字符隔开。

输入输出样例

输入样例#1:

8 0

输出样例#1:

8

输入样例#2:

24 210 0 255

输出样例#2:

130 1 129 2 129 9 136


  分析:

  没错,一道只用模拟就可以A的省选,搞不懂出题人的心思。。。

  Code:

  

#include<bits/stdc++.h>
using namespace std;
int n,a[];
int main()
{
ios::sync_with_stdio(false);
cin>>n;int x,y,cnt;
for(int i=;i<=n/;i++){
cin>>x;
for(int j=;j>=;j--)
a[(i-)*+j]=x%,x/=;}
y=;cnt=;
while(){
x=a[y];cnt=;
while(a[y]==x){
cnt++,y++;if(y>n)break;}
if(x==)cnt+=;
cout<<cnt<<" ";
if(y>n)break;}
return ;
}

最新文章

  1. IOS第四天(4:下一题和选框的实现)
  2. 2.Knockout.Js(监控属性Observables)
  3. MySQL中MyISAM引擎及InnoDB引擎的缓存优化设计
  4. objective-c里的方法指针IMP的用法
  5. kendo ui grid控件在选择行时如何取得所选行的某一列数据
  6. struts2+ajax
  7. HTML实体符号
  8. XStream 用法汇总
  9. zabbix agent(Active)模式 /克隆修改模板
  10. UNIX网络编程——常用服务器模型总结
  11. python3中报错:TypeError: &#39;range&#39; object doesn&#39;t support item deletion
  12. 两种 AuthorizationSchemes 在 ASP.NET Core 2
  13. Loadrunner常用目录、组成部分及负载测试流程
  14. netbeans增加yii的代码提示
  15. 关于scrapy 使用代理相关问题
  16. benthos v1 的一些新功能
  17. 为什么使用this构造器
  18. Mysql注入绕过姿势
  19. Microsoft Power BI Desktop概念学习系列之Microsoft Power BI Desktop的官网自带示例数据(图文详解)
  20. 在全志V3/V3s和索智S3/S3L上调试32MB NorFlash

热门文章

  1. ES6中字符串的扩展
  2. LightOJ 1284 - Lights inside 3D Grid 概率/期望/二项式定理
  3. C11简洁之道:类型推导
  4. Linux while 和 read 的用法
  5. How to write educational schema.
  6. bzoj 1006 MCS算法
  7. Solaris 选择使用不同网口的操作
  8. 顺序图(Sequence Diagram)
  9. 去掉每行的特定字符py脚本
  10. vue-router 基础