题单练习 递归
← 上一题 下一题 →

A7114 | [USACO26JAN1] Lineup Queries S

来源USACO
时间限制1s
内存限制128MB
通过 / 提交0/0

题目描述

一开始只有一头奶牛,编号为 $0$,位于下标 $0$。

接下来进行若干轮操作。对于第 $x$ 轮($x$ 从 $1$ 开始),令
$$ m=\left\lfloor \frac{x}{2}\right\rfloor. $$
这一轮依次执行:

1. 将当前位于下标 $0$ 的奶牛移动到下标 $m$。
2. 原本处于下标区间 $[1,m]$ 的奶牛整体向前移动一格(下标都减 $1$)。
3. 新建一头奶牛,编号为 $x$,并放到下标 $x$。

可以证明:第 $t$ 轮结束后,恰好有 $t+1$ 头奶牛,分别位于下标 $0,1,2,\dots,t$。

你需要回答 $q$ 个询问,每个询问给出一个轮数 $t$ 与一个参数 $x$:

  • 询问 1:第 $t$ 轮结束后,编号为 $x$ 的奶牛位于哪个下标?
  • 询问 2:第 $t$ 轮结束后,下标为 $x$ 的位置上是哪一头奶牛(输出其编号)?

输入格式

第一行包含一个整数 $q$,表示询问个数。
接下来 $q$ 行,每行包含三个整数 $op,t,x$:
  • 若 $op=1$,表示询问 $1$;
  • 若 $op=2$,表示询问 $2$。

输出格式

对于每个询问输出一行一个整数表示答案。

输入输出样例

输入 #1
4
1 2 1
2 2 0
2 4 2
1 4 0
输出 #1
0
1
0
2
C++ 编辑器
输入
输出