题号:NC312182
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld
题目描述

小红有一棵包含

个节点的
完全二叉树![^\texttt{[1]}](https://www.nowcoder.com/equation?tex=%5E%5Ctexttt%7B%5B1%5D%7D)
,其中

号节点为根,

号节点的左儿子编号是

,右儿子编号是

。

现在有

次询问,每次查询一个

,你需要回答与

号节点
深度![^\texttt{[3]}](https://www.nowcoder.com/equation?tex=%5E%5Ctexttt%7B%5B3%5D%7D)
相同的节点有多少个(包含

本身)。
【名词解释】
完全二叉树![^\texttt{[1]}](https://www.nowcoder.com/equation?tex=%5E%5Ctexttt%7B%5B1%5D%7D)
:满足以下全部条件的
二叉树![^\texttt{[2]}](https://www.nowcoder.com/equation?tex=%5E%5Ctexttt%7B%5B2%5D%7D)
。

若树的层数为

,则除第

层外,其他各层(

至

层)的节点数均达到最大值(即第
)
层节点数为

);

第

层的所有节点都连续集中在左侧,即节点之间不存在任何空位。
二叉树![^\texttt{[2]}](https://www.nowcoder.com/equation?tex=%5E%5Ctexttt%7B%5B2%5D%7D)
:满足以下全部条件的树。

二叉树可以是空集;若不为空,则由一个根节点以及两棵互不相交的、分别称为左子树和右子树的二叉树组成;

每个节点要么没有父节点连接(此时该节点被称为
根节点)、要么被

个父节点连接(此时该节点被称为父节点的
子节点);

每个节点连接的子节点数量要么为

(此时该节点被称为
叶子节点),要么不超过

,且此时每个子节点都有明确的“左”或“右”属性。
深度![^\texttt{[3]}](https://www.nowcoder.com/equation?tex=%5E%5Ctexttt%7B%5B3%5D%7D)
:从根节点到节点

的唯一路径上的边数,称为节点

的深度。根节点的深度为

。
输入描述:
每个测试文件均包含多组测试数据。第一行输入一个整数
代表数据组数,每组测试数据描述如下:
第一行输入两个整数
,表示二叉树的节点数、询问次数。
此后
行,第
行输入一个整数
,表示第
次询问的节点编号。
除此之外,保证单个测试文件的
之和不超过
。
输出描述:
对于每一次询问,新起一行输出一个整数,代表与
号节点深度相同的节点数量。
示例1
输入
复制
2
6 6
1
2
3
4
5
6
1145 3
1000
4
66