问题描述
- 灰度图像共有256级灰阶,编码为
00-FF(对应十进制0-255),要求编程实现将其压缩为16级灰阶,编码为0-F。
- 压缩规则:
- 统计所有灰阶的出现次数,取出现次数最多的前16种灰阶(若次数相同则按灰阶值从小到大排序),分别编号
0-F。
- 其余灰阶转换为16种基准灰阶中最接近的:计算灰阶差的绝对值,最小的即为目标基准灰阶(若差值相同则选择灰阶值更小的基准)。
- 输入输出要求:
- 输入:多行等长数据,每两个字符表示一个十六进制的灰阶点;输出先连续输出选中的最多16种基准灰阶编码(不足16种按实际输出),之后各行输出压缩后的编码,每行等长。
输入描述
- 第一行输入正整数
n,表示后续输入的数据行数。
- 接下来输入
n行十六进制字符串。
- 注意:Python的
input()函数不得添加任何输入提示信息。
输出描述
- 首先输出选中的基准灰阶编码:按出现次数从多到少排序,次数相同则按灰阶值从小到大排序,每个灰阶占2个字符,总长度最多32字符(对应16种),不足16种按实际输出。
- 输出的十六进制字母必须为大写,字符间无空格。
样例输入
10
00FFCFAB00FFAC09071B5CCFAB76
00AFCBAB11FFAB09981D34CFAF56
01BFCEAB00FFAC0907F25FCFBA65
10FBCBAB11FFAB09981DF4CFCA67
00FFCBFB00FFAC0907A25CCFFC76
00FFCBAB1CFFCB09FC1AC4CFCF67
01FCCBAB00FFAC0F071A54CFBA65
10EFCBAB11FFAB09981B34CFCF67
01FFCBAB00FFAC0F071054CFAC76
1000CBAB11FFAB0A981B84CFCF66
样例输出
ABCFFF00CB09AC07101198011B6776FC
321032657CD10E
36409205ACC16D
B41032657FD16D
8F409205ACF14D
324F326570D1FE
3240C245FC411D
BF4032687CD16D
8F409205ACC11D
B240326878D16E
83409205ACE11D