#P6424. [COCI2008-2009#2] SETNJA

[COCI2008-2009#2] SETNJA

题目描述

在二叉树中:

  • 每个节点都有两个孩子——一个左孩子和一个右孩子。
  • 如果节点标记为整数 xx,则其左子节点标记为 2x2x,右子节点标记为 2x+12x+1
  • 树的根标为 11

在二叉树上从根开始遍历。遍历中的每一步要么是跳到左孩子上,要么是跳到右孩子上,或暂停休息(停留在同一节点上)。

用由字符 LRP 组成的字符串描述遍历过程。

  • L 表示跳到左孩子;
  • R 表示跳到右孩子;
  • P 表示暂停一轮操作。

walkwalk 的值是我们最终到达的节点的标签。例如,LRwalkwalk 值为 55,而 RPPwalkwalk 值为 33

一次遍历由 LRP* 描述。每个 * 可以是三个动作中的任何一个。 例如, L*R 可能代表 LLRLRRLPR。集合 ** 可能代表 LLLRLPRLRRRPPLPR PP

最后,一次遍历后的 walkwalk 的总值是该次遍历中所有可能的遍历顺序的每一步所形成的 walkwalk 的值的总和。

计算给定遍历顺序后的 walkwalk 的总值。

输入格式

一行一个字符串,表示遍历顺序。

输出格式

一行一个整数,表示 walkwalk 的总值。

P*P
6
L*R
25
**
33
LLLLLRRRRRLLLLLRRRRRLLLLLRRRRRLLLLL
35400942560

提示

数据规模与约定

  • 对于 30%30\% 的数据,保证输入的字符串中无 * 字符。
  • 对于 50%50\% 的数据,保证输入的字符串中至多有三个 * 字符。
  • 对于 100%100\% 的数据,保证输入字符串长度小于 1000010000,字符串的每一位只可能是 LRP*

说明