3859: 三三音乐(挖土机 CSP-J 模拟赛 ~ 第二场)

内存限制:512 MB 时间限制:1.000 S
评测方式:文本比较 命题人:
提交:4 解决:3

题目描述

33DAI 最近学习了音频的数字化方法。按顺序依次为“采样、量化、编码”三个步骤,下面是相关概念的简单解释:

  • 采样:每隔一个固定的时间得到一个当前音频信息,可以认为这个信息是一个浮点数。
  • 量化:音频信息都量一下对应的刻度。
  • 编码:把每个刻度对应到一个数字代码,把所有数字代码从前往后连接就形成了音频的数字信息。
  • 采样频率:单位为赫兹(hz),表示每秒钟的采样次数,每次采样的间隔时间一样。假设采样频率为  hz,则表示每 1 秒采集一个音频信息(浮点数)。
  • 量化位数:即采用一个几位的二进制数来描述采样得到的浮点数。假设量化位数为 ,那么量化结果的二进制整数对应的十进制范围为 021。 假设音频信息(浮点数)的范围固定为 1620000,那么会把 1620000 中间平均分出来 21 个分界点,加上 16 一起就构成了 2 个分界点。每个音频信息都找到小于等于它的最大的刻度值作为它的编码值。

一般来说标准的音频文件还会有多声道、以及一些压缩算法来得到更好的效果。但本题不讨论这个。

33DAI 拿到了一个采样频率为  赫兹,持续  秒的一共 × 个音频信息(浮点数),他想要把这些音频信息(浮点数)按照  位的量化位数进行量化。

他使用二进制编码,把所有量化的刻度从小到大分别对应为 021,每个刻度都用一个  位二进制数记录,所有固定位数的二进制数从前往后连接得到最终编码结果。

请你输出最终的编码结果。

输入

第一行为三个整数 ,,

接下来  行,每行为  个浮点数,即每秒的音频信息。

输出

一行为最终的编码结果。

样例输入 复制

5 2 3
16.8 2000 7510 15333 10008 
9000.5 15005 19999.99 15003.999 2514.01

样例输出 复制

000000011110100011110111101001

提示

样例 1 解释

采样

每一段时间采集当前数据,得到一系列浮点数。


量化

量化位数为 3,所以分为了 23=8 段,每段间隔 (2000016)/8=2498。找到对应的刻度。


编码

用对应的二进制给每个音频信号(浮点数)编码


数据规模与约定

对于 100% 的数据,保证:

  • 144100
  • 1300
  • 1105
  • 116
  • 16音频信息20000

子任务划分:

  • 子任务 1(10 分):保证 =1
  • 子任务 2(20 分):保证 =1
  • 子任务 3(30 分):保证 音频信息=16
  • 子任务 4(40 分):没有特殊限制

来源/分类