A100977.[USACO26JAN1] Lineup Queries S

普及+/提高

USACO

通过率:0%

时间限制:1.00s

内存限制:128MB

题目描述

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

接下来进行若干轮操作。对于第 xx 轮(xx11 开始),令

m=x2.m=\left\lfloor \frac{x}{2}\right\rfloor.

这一轮依次执行:

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

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

你需要回答 qq 个询问,每个询问给出一个轮数 tt 与一个参数 xx

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

输入格式

第一行包含一个整数 qq,表示询问个数。
接下来 qq 行,每行包含三个整数 op,t,xop,t,x

  • op=1op=1,表示询问 11
  • op=2op=2,表示询问 22

输出格式

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

输入输出样例

  • 输入#1

    4
    1 2 1
    2 2 0
    2 4 2
    1 4 0
    

    输出#1

    0
    1
    0
    2

说明/提示

数据范围

  • 1q2×1051\le q\le 2\times 10^5
  • 0t10180\le t\le 10^{18}
  • 对于任意询问,保证 0xt0\le x\le t
  • 需要注意读入效率。

样例解释

00 轮(初始)

只有编号为 00 的奶牛在下标 00

[0][0]


11

本轮 x=1x=1,令

m=12=0.m=\left\lfloor \frac{1}{2}\right\rfloor=0.

  1. 将下标 00 的奶牛(编号 00)放到下标 m=0m=0(位置不变)。
  2. 原本处于区间 [1,m]=[1,0][1,m]=[1,0] 的奶牛整体前移一格(该区间为空,无变化)。
  3. 新建编号为 11 的奶牛放到下标 11

因此第 11 轮结束后序列(下标 \to 编号)为:

[0,1][0,\,1]


22

本轮 x=2x=2,令

m=22=1.m=\left\lfloor \frac{2}{2}\right\rfloor=1.

11 轮结束时序列为 [0,1][0,1],即下标 00 是编号 00,下标 11 是编号 11

  1. 将下标 00 的奶牛(编号 00)移动到下标 m=1m=1
  2. 原本处于区间 [1,m]=[1,1][1,m]=[1,1] 的奶牛(编号 11)整体前移一格,变到下标 00
  3. 新建编号为 22 的奶牛放到下标 22

因此第 22 轮结束后序列为:

[1,0,2][1,\,0,\,2]

由此:

  • 询问 11t=2t=2):编号 11 在下标 00,输出 00
  • 询问 22t=2t=2):下标 00 上是编号 11,输出 11

33

本轮 x=3x=3,令

m=32=1.m=\left\lfloor \frac{3}{2}\right\rfloor=1.

22 轮结束时序列为 [1,0,2][1,0,2]

  1. 将下标 00 的奶牛(编号 11)移动到下标 m=1m=1
  2. 原本处于区间 [1,1][1,1] 的奶牛(编号 00)整体前移一格,变到下标 00
  3. 新建编号为 33 的奶牛放到下标 33
    并且原来下标 22 的奶牛(编号 22)不在区间 [1,1][1,1] 中,因此保持在下标 22

因此第 33 轮结束后序列为:

[0,1,2,3][0,\,1,\,2,\,3]


44

本轮 x=4x=4,令

m=42=2.m=\left\lfloor \frac{4}{2}\right\rfloor=2.

33 轮结束时序列为 [0,1,2,3][0,1,2,3]

  1. 将下标 00 的奶牛(编号 00)移动到下标 m=2m=2
  2. 原本处于区间 [1,2][1,2] 的奶牛(编号 11 和编号 22)整体前移一格:
    • 编号 11 从下标 11 变到下标 00
    • 编号 22 从下标 22 变到下标 11
  3. 新建编号为 44 的奶牛放到下标 44
    并且原来下标 33 的奶牛(编号 33)不在区间 [1,2][1,2] 中,因此保持在下标 33

因此第 44 轮结束后序列为:

[1,2,0,3,4][1,\,2,\,0,\,3,\,4]

由此:

  • 询问 22t=4t=4):下标 22 上是编号 00,输出 00
  • 询问 11t=4t=4):编号 00 在下标 22,输出 22
首页