【每日蓝桥】43、一六年省赛Java组真题“压缩变换”

67 阅读1分钟

你好呀,我是灰小猿,一个超会写bug的程序猿!

欢迎大家关注我的专栏“每日蓝桥”,该专栏的主要作用是和大家分享近几年蓝桥杯省赛及决赛等真题,解析其中存在的算法思想、数据结构等内容,帮助大家学习到更多的知识和技术!

标题:压缩变换

小明最近在研究压缩算法.

他知道,压缩的时候如果能够使得数值很小,就能通过熵编码得到较高的压缩比。

然而,要使数值很小是一个挑战.

最近,小明需要压缩一些正整数的序列,这些序列的特点是,后面出现的数字很大可能是刚

出现过不久的数字.对于这种特殊的序列,小明准备对序列做-一个变换来减小数字的值.

变换的过程如下:

从左到右枚举序列,每枚举到一一个数字,如果这个数字没有出现过,刚将数字变换成它的相反数,如果数字出现过,则看它在原序列中最后的一次出现后面(且在当前数前面)出现了

几种数字,用这个种类数替