#2254. 徐老师的音频数字化

徐老师的音频数字化

题目描述

最近公布进入复赛的名单后,徐老师难过的发现自己居然没有进入复赛

于是徐老师开始复习初赛知识,提前为明年的比赛做准备!

初赛知识中有很多计算机相关的知识,这天徐老师复习到了音频数字化的过程,即将一段音频转化成对应数字信息的过程

按顺序依次为 采样、量化、编码 三个步骤,下面是相关概念的简单解释:

  • 采样:每隔一个固定的时间(采样频率)得到一个当前音频信息,可以认为这个信息是一个浮点数。

  • 量化:按照 量化位数 划出的刻度线,对于每个音频信息找到 小于等于它的最大刻度值

  • 编码:将每个音频信息对应刻度的 数字编码 (即刻度编号的二进制数字)从前往后连接就形成了音频的数字信息。

  • 采样频率:单位为赫兹(hzhz),表示每秒钟的采样次数,每次采样的间隔时间一样。假设采样频率为 a hza\ hz,则表示每 1a\frac{1}{a} 秒采集一个音频信息。

  • 量化位数:即采用一个几位的二进制数来描述采样得到的浮点数,假设量化位数为 bb,那么量化结果的二进制整数对应的十进制范围为 02b10\sim 2^b-1

    在这里我们将音频信息的范围固定为 162000016 \sim 20000,以 1616 为第一个刻度,那么将剩余的 162000016 \sim 20000 平均分出 2b12^b-1 个刻度,一共 2b2^b 个刻度。

一般来说标准的音频文件还会有多声道、以及一些压缩算法来得到更好的效果,但是徐老师不考虑这些复杂情况。

现在徐老师拿到了一个采样频率为 a hza\ hz,持续 tt 秒的一共 a×ta\times t 个音频信息,他想要把这些音频信息按照 bb 位的量化位数进行量化。

现在请你告诉徐老师他的编码结果应该是多少,以此来帮助徐老师对比自己的答案是否正确。

P.S.1 亡羊补牢没有意义,今年没有进复赛就按照正常流程继续学习,等到明年好好准备比赛,不要总是等到吃了亏,比赛失败以后才想到要好好努力

P.S.2 希望进入到复赛的同学们能够获得一个自己满意的好成绩!

输入格式

第一行为三个整数 a,t,ba,t,b,含义如题

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

输出格式

输出包含一行二进制数字,为最终的编码结果。

数据范围

对于 100%100\% 的数据,保证:$1\le a \le 44100,1\le t \le 300, 1 \le a * t \le 10^5, 1\le b\le 16, 16\le 音频信息(浮点数) \le 20000$。

数据点编号 特殊性质
11 at=1a * t=1
232 \sim 3 b=1b=1
464 \sim 6 所有音频信息均为 1616
7107 \sim 10

样例输入1

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

样例输出1

000000011110100011110111101001

样例解释1

采样

采样频率为 5 hz5\ hz,一共持续 22 秒,得到一共 25=102 * 5 = 10 个音频信息(浮点数),用黄色线表示每次收集音频信息的时间,蓝色节点 即为收集到的音频信息

image

量化

量化位数为 33,则将整体范围(162000016 \sim 20000) 划分为 23=82^3=8 段,其中第一段的刻度固定为 1616,接下去每隔 (2000016)/8=2498(20000-16) / 8=2498 划一个刻度,依次为 2514,5012,7510,10008,12506,15004,175022514,5012,7510,10008,12506,15004,17502,对于每个音频信息找到 小于等于它的最大刻度值

这里用 黄色线 表示每个刻度,用 黄色节点 表示对于每个音频信息(蓝色节点)找到的对应刻度

image

编码

将每个音频信息对应刻度的二进制编码从前往后依次连接形成整个音频转化后的数字信息即 000,000,011,110,100,011,110,111,101,001000,000,011,110,100,011,110,111,101,001

image