4315: [GESP202412六级] 树上游走
内存限制:256 MB
时间限制:1.000 S
评测方式:文本比较
命题人:
提交:1
解决:1
题目描述
## 题目背景
2024 年 12 月 GESP C++ 六级编程第 1 题
## 题目描述
小杨有一棵包含无穷节点的二叉树(即每个节点都有左儿子节点和右儿子节点;除根节点外,每个节点都有父节
点),其中根节点的编号为 $1$,对于节点 $i$,其左儿子的编号为 $2 \times i$,右儿子的编号为 $2 \times i + 1$。
小杨会从节点 $s$ 开始在二叉树上移动,每次移动为以下三种移动方式的任意一种:
- **第1种移动方式:** 如果当前节点存在父亲节点,向上移动到当前节点的父亲节点,否则不移动;
- **第2种移动方式:** 移动到当前节点的左儿子;
- **第3种移动方式:** 移动到当前节点的右儿子。
小杨想知道移动 $n$ 次后自己所处的节点编号。数据保证最后的所处的节点编号不超过 $10^{12}$。
输入
## 输入格式
第一行包含一个正整数 $n, s$,代表移动次数和初始节点编号。
第二行包含一个长度为 $n$ 且仅包含大写字母 $U,L,R$ 的字符串,代表每次移动的方式,其中 $U$ 代表第 $1$ 种移动方式,$L$
代表第$2$种移动方式,$R$ 代表第$3$种移动方式。
输出
## 输出格式
输出一个正整数,代表最后所处的节点编号。
样例输入 复制
3 2
URR
样例输出 复制
7
提示
## 样例
```input1
3 2
URR
```
```output1
7
```
## 说明/提示
### 样例解释
小杨的移动路线为 $2-1-3-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}$ 。