AT_arc049_d.[ARC049D] すわっぷしまーす
NOI/NOI+/CTSC
通过率:0%
AC君温馨提醒
该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
高桥君在旅行中参观了一棵奇特的完全二叉树,名为「すわっぷしまーす」。
这棵完全二叉树的高度是 N+1,具有 2N 个叶子节点。每个叶子节点从左到右依次标记为 1,2,3,…,2N。
对于非叶子节点,位置的定义如下:位于第 i 层(1≤i≤N)且从左边数第 j 个节点(1≤j≤2i−1)的位置是 2i−1+(j−1)。
此外,定义操作 swap(x),意为找到位置为 x 的节点,并交换其左右子树。
「すわっぷしまーす」可以处理两类查询:
类型 1: 给予 k(1≤k≤2N),求第 k 个叶子节点上的数字。
类型 2: 给出 a,b(1≤a≤b≤2N−1),按顺序执行 swap(a),swap(a+1),…,swap(b)。
高桥君希望能够构建一个自己的「すわっぷしまーす」,但是遇到了困难。因此,请你帮助他实现这一目标。具体任务是:给定 N 和 Q 个查询,你需要构建并维护一棵能够处理这些查询的「すわっぷしまーす」。
输入格式
从标准输入中读取数据,格式如下:
N Q t1 a1 b1 t2 a2 b2 \ldots tQ aQ bQ
- 第一行包含两个整数 N(1≤N≤17) 和 Q(1≤Q≤200,000)。
- 接下来的 Q 行,每行包含三个整数 ti, ai, bi。
- 若 ti=1,这是一类 1 查询,ai 表示查询的 k 值,bi 始终为 0。
- 若 ti=2,这是一类 2 查询,ai 和 bi 分别表示范围 [a,b]。
输出格式
对于每个类型 1 查询,输出对应的结果,每个结果输出一次之后需要换行。
本翻译由 AI 自动生成
输入输出样例
输入#1
3 10 2 5 5 1 1 0 1 2 0 1 3 0 1 4 0 2 1 3 1 2 0 1 3 0 1 5 0 1 6 0
输出#1
1 2 4 3 8 5 4 3
输入解题思路,AI测评打分。不知道怎么写?