跳树
题目背景
兔子喜欢跳树。
题目描述
一天,兔子在一棵点数为 $2^n-1$ 完全二叉树上的一个结点上,他准备进行若干次如下的跳跃。
- 跳到这个点的左儿子,保证这个点有左儿子。
- 跳到这个点的右儿子,保证这个点有右儿子。
- 跳到这个点的父亲,**若这个点是根,无视此操作**。
其中,$i$ 号点要么没有儿子,要么有左儿子 $2 \times i$ 和右儿子 $2 \times i + 1$。
兔子会计划性地跳树,他写下了一个长度为 $m$ 的序列 $op$。$op$ 中的每个数都是 $1$, $2$, $3$ 中的一种。操作 $i$ 对应从上到下第 $i$ 种跳跃方式。
每次,兔子会选择一段区间 $[l,r]$,依次进行跳跃 $op_l,op_{l+1},\ldots,op_r$。
有时兔子会对一个点的 $op$ 值进行修改。
现在你需要求出兔子每次会跳到哪个结点。
阅读样例解释可以对题意获得更好的理解。
输入输出格式
输入格式
第一行三个整数 $n, m, q$,表示树的大小的幂次、$op$ 的长度、操作的次数。
第二行包含 $m$ 个整数 $op_{1,2,\ldots,m}$,表示序列的初值。
接下来 $q$ 行,每行一个整数 $type$,若 $type$ 为 $1$,接下来三个整数 $s,l,r$,描述起点和进行跳跃的区间;若 $type$ 为 $2$ ,接下来两个整数 $x,y$,描述修改的位置与值。
输出格式
对于每一个 $type=1$,输出一个数,表示跳跃到的结点。
输入输出样例
输入样例 #1
3 5 4
1 2 3 3 1
1 3 4 5
1 2 2 4
2 3 1
1 1 2 3
输出样例 #1
2
1
6
说明
![](https://cdn.luogu.com.cn/upload/image_hosting/jxigowfv.png)
其中红边为第一次跳跃的路径,蓝边为第二次,绿边为第三次。
所有测试数据的范围和特点如下表所示:
![](https://cdn.luogu.com.cn/upload/image_hosting/lost2xr2.png)
对于 $100\%$ 的数据,$1\leq n \leq 30$,$1\leq m,q \leq 5 \times 10^5$,$1\leq op_i\leq 3$。