103214: [Atcoder]ABC321 E - Complete Binary Tree
Description
Score : $450$ points
Problem Statement
There is a tree with $N$ vertices numbered $1$ to $N$. For each $i\ (2 \leq i \leq N)$, there is an edge connecting vertex $i$ and vertex $\lfloor \frac{i}{2} \rfloor$. There are no other edges.
In this tree, find the number of vertices whose distance from vertex $X$ is $K$. Here, the distance between two vertices $u$ and $v$ is defined as the number of edges in the simple path connecting vertices $u$ and $v$.
You have $T$ test cases to solve.
Constraints
- $1\leq T \leq 10^5$
- $1\leq N \leq 10^{18}$
- $1\leq X \leq N$
- $0\leq K \leq N-1$
- All input values are integers.
Input
The input is given from Standard Input in the following format, where $\mathrm{test}_i$ represents the $i$-th test case:
$T$ $\mathrm{test}_1$ $\mathrm{test}_2$ $\vdots$ $\mathrm{test}_T$
Each test case is given in the following format:
$N$ $X$ $K$
Output
Print $T$ lines.
The $i$-th line $(1 \leq i \leq T)$ should contain the answer to the $i$-th test case as an integer.
Sample Input 1
5 10 2 0 10 2 1 10 2 2 10 2 3 10 2 4
Sample Output 1
1 3 4 2 0
The tree for $N=10$ is shown in the following figure.
Here,
- There is $1$ vertex, $2$, whose distance from vertex $2$ is $0$.
- There are $3$ vertices, $1,4,5$, whose distance from vertex $2$ is $1$.
- There are $4$ vertices, $3,8,9,10$, whose distance from vertex $2$ is $2$.
- There are $2$ vertices, $6,7$, whose distance from vertex $2$ is $3$.
- There are no vertices whose distance from vertex $2$ is $4$.
Sample Input 2
10 822981260158260522 52 20 760713016476190629 2314654 57 1312150450968417 1132551176249851 7 1000000000000000000 1083770654 79 234122432773361868 170290518806790 23 536187734191890310 61862 14 594688604155374934 53288633578 39 1000000000000000000 120160810 78 89013034180999835 14853481725739 94 463213054346948152 825589 73
Sample Output 2
1556480 140703128616960 8 17732923532771328 65536 24576 2147483640 33776997205278720 7881299347898368 27021597764222976
Output
问题描述
有一个有N个顶点的树,编号为1到N。 对于每个$i\ (2 \leq i \leq N)$,存在一条连接顶点i和顶点$\lfloor \frac{i}{2} \rfloor$的边。 没有其他边。
在这个树中,找出与顶点X的距离为K的顶点的数量。 这里,两个顶点$u$和$v$之间的距离定义为连接顶点$u$和$v$的简单路径上的边的数量。
你需要解决T个测试用例。
约束
- $1\leq T \leq 10^5$
- $1\leq N \leq 10^{18}$
- $1\leq X \leq N$
- $0\leq K \leq N-1$
- 所有输入值都是整数。
输入
输入从标准输入给出以下格式,其中$\mathrm{test}_i$表示第i个测试用例:
$T$ $\mathrm{test}_1$ $\mathrm{test}_2$ $\vdots$ $\mathrm{test}_T$
每个测试用例给出以下格式:
$N$ $X$ $K$
输出
打印T行。
第i行$(1 \leq i \leq T)$应包含第i个测试用例的答案,即整数。
样例输入1
5 10 2 0 10 2 1 10 2 2 10 2 3 10 2 4
样例输出1
1 3 4 2 0
当N=10时,树如下图所示。
在这里,
- 与顶点2的距离为0的顶点有1个,即2。
- 与顶点2的距离为1的顶点有3个,即1,4,5。
- 与顶点2的距离为2的顶点有4个,即3,8,9,10。
- 与顶点2的距离为3的顶点有2个,即6,7。
- 没有与顶点2的距离为4的顶点。
样例输入2
10 822981260158260522 52 20 760713016476190629 2314654 57 1312150450968417 1132551176249851 7 1000000000000000000 1083770654 79 234122432773361868 170290518806790 23 536187734191890310 61862 14 594688604155374934 53288633578 39 1000000000000000000 120160810 78 89013034180999835 14853481725739 94 463213054346948152 825589 73
样例输出2
1556480 140703128616960 8 17732923532771328 65536 24576 2147483640 33776997205278720 7881299347898368 27021597764222976