在无线通信设备中,超外差接收机通过将输入信号与本地产生的振荡波混频来变换频率。为了节省器件,设计了一种二又树型的混频器组,可以同时将信号搬移到不同的频率。给定一个完全二叉树的层数和每个叶子节点的目标频率值,我们需要计算树中每个节点的值,节点值由其所有叶子节点的最大值和最小值的平均值减去其所有父节点值的总和。最终以数组形式输出该二叉树的节点值。
建立一个满二叉树,从下往上建树,每个节点存储当前最大值和最小值,叶子结点最大值和最小值一样,没个节点只需要考虑自己的左孩子和右孩子。由两个孩子来更新自身的最大值和最小值。从下往上建树后从上向下DFS,每层携带一个参数表示所有父亲的值的和。
在无线通信设备中通常使用超外差接收机,超外差接收机是利用本地产生的振荡波与输入信号混频,将输入信号频率变换为某个预先确定的频率的方法。也就是说,信号通过一个混频器后,频率就会搬移一个数值。在项目中由于要节省器件,混频器需要尽可能的共享,我们设计了二又树型的混频器组,可以同时把信号搬移到不同的频率上。
二又树为完全二叉树。我们给定二叉树的层数和从根节点开始到每个子节点的频率搬移总和输出二又树。
规则: 节点的值为它的所有叶子节点的目标频率值最大值和最小值的平均值 (非整数向下取整)减去 它所有父节点的总和。
A | 频率范围10~70, 则值是(10+70)/2=40 | ||||||
---|---|---|---|---|---|---|---|
B | C | 频率范围30~70,则值是(30+70)/2-40=10 | |||||
D | E | F | G | 频率范围70,则值是70-10-40=20 | |||
10 | 20 | 30 | 70 | 目标帧率 |
满足:
以数组形式的二叉树表示
输入
4
18 24 2 3
输出
13 8 -11 -3 3 0 1
解释
第0层:所有叶子节点最大最小值的平均值为(2+24)/2=13所有父节点值为0,最终为 13−0=13
第1层左节点:所有叶子节点 最大最小值的平均值为(18+24)/2=21 所有父节点值为13,最终为21−13=8
第1层右节点:所有叶子节点 最大最小值的平均值为(2+3)/2=2所有父节点值为13,最终为2−13=−11
第2层第1个节点:所有叶子节点 最大最小值的平均值为18/1=18所有父节点值为13+8=21,最终为18−21=−3
第2层第2个节点: 所有叶子节点 最大最小值的平均值为24/1=24 所有父节点值为13+8=21,最终为24−21=3
第2层第3个节点: 所有叶子节点 最大最小值的平均值为2/1=2 所有父节点值为13+(−11)=2,最终为2−2=0
第2层第4个节点: 所有叶子节点 最大最小值的平均值为3/1=3 所有父节点值为13+(−11)=2,最终为3−2=1
13 | 频率范围2~24.则值是(2+24)/2=13 | ||||||
---|---|---|---|---|---|---|---|
8 | -11 | 频率范围2-4,则值是(2+4)/2-13=-10 | |||||
-3 | 3 | 0 | 1 | 频率范围4,则值是4-(-10)-13=1 | |||
18 | 24 | 2 | 3 | 目标帧率 |