P7181: 树上的数字
传统题
1.000s
时间限制
256MB
内存限制
1 提交
1 解决
【题目描述】
【题目描述】
童童正在一个节目上收听关于完美二叉树的讲座。“一个完美的二叉树有一个特殊的节点,称为根节点,通常画在顶部。除了最底层的节点,每个节点都有两个子节点,我们称之为叶子节点。”童童已经知道了这一切,所以她有点无聊。注意到这一点,小智给童童提出了一个新的挑战。
首先,我们用数字标记一个完美二叉树的节点,如下图所示。我们从右下方的叶子开始,它的编号是1,然后按从右到左的递增顺序标记同一级别上的节点。在完成一层后,我们移动到上面一层中最右边的节点,并从右到左标记该层中的所有节点。我们以这种方式继续前进,直到我们到达根节点。
当我们想要描述树中的一个节点时,我们可以通过描述从根节点开始向下到叶子的路径来实现。在每个非叶节点上,我们可以向左(“L”)或向右(“R”)走。
图1:高度为3的标记二叉树,从根节点开始有两条标记路径。路径LR通向标签11,路径RRL通向标签2。根节点编号是15。
【任务】
Lovisa的任务是计算节点的编号,给定树的高度H和从根开始的路径描述。
【输入】
输入一个整数H (1≤H≤30)表示树的高度和一个由字母“L”和“R”组成的字符串,表示从根开始的树中的路径。字母“L”表示选择左子树,字母“R”表示选择右子树。路径描述可以为空,最多不超过H个字母。
【输出】
输出给定路径的节点的编号。
【样例输入1】
3 LR
【样例输出1】
11
【样例输入2】
3 RRL
【样例输出2】
2
【样例输入3】
2
【样例输出3】
7