计算满二叉树上游走n次后的最终节点编号
题面描述
小杨有一棵包含无穷节点的满二叉树,根节点编号为1,对于节点i,其左儿子编号为$2 \times i$,右儿子编号为$2 \times i + 1$。 小杨从节点s开始在二叉树上移动,每次移动为以下三种方式之一:
- U(向上移动):如果当前节点不是根节点,移动到父节点,否则不移动;
- L(向左移动):移动到当前节点的左儿子;
- R(向右移动):移动到当前节点的右儿子。 求移动n次后所处的节点编号,数据保证最终节点编号不超过$10^{12}$。
输入格式
第一行包含两个正整数n和s,分别代表移动次数和初始节点编号。 第二行包含一个长度为n、仅由大写字母U、L、R组成的字符串,代表每次移动的指令。
输出格式
输出一个正整数,代表最终所处的节点编号。
样例
样例输入
3 2
URR
样例输出
7
样例解释
小杨的移动路线为 $2 \to 1 \to 3 \to 7$。
数据范围
| 子任务编号 | 数据点占比 | n的取值范围 | s的取值范围 |
|---|---|---|---|
| 1 | 20% | $\leq 10$ | $\leq 2$ |
| 2 | 20% | $\leq 50$ | $\leq 10$ |
| 3 | 60% | $\leq 10^6$ | $\leq 10^{12}$ |
对于全部数据,保证 $1 \leq n \leq 10^6, 1 \leq s \leq 10^{12}$。
本题为编程题,提交代码并运行通过测试点后判分。
正在加载题目数据…
子题
该题型需在试卷/作业中作答,单题练习暂不支持
答案解析