P6424 [COCI 2008/2009 #2] SETNJA

题目描述

在二叉树中: - 每个节点都有两个孩子——一个左孩子和一个右孩子。 - 如果节点标记为整数 $x$,则其左子节点标记为 $2x$,右子节点标记为 $2x+1$。 - 树的根标为 $1$。 在二叉树上从根开始遍历。遍历中的每一步要么是跳到左孩子上,要么是跳到右孩子上,或暂停休息(停留在同一节点上)。 用由字符 `L`,`R` 和 `P` 组成的字符串描述遍历过程。 - `L `表示跳到左孩子; - `R `表示跳到右孩子; - `P `表示暂停一轮操作。 $walk$ 的值是我们最终到达的节点的标签。例如,`LR` 的 $walk$ 值为 $5$,而 `RPP` 的 $walk$ 值为 $3$。 一次遍历由 `L`,`R`,`P` 和 `*` 描述。每个 `*` 可以是三个动作中的任何一个。 例如, `L*R` 可能代表 `LLR`,`LRR` 和 `LPR`。集合 `**` 可能代表 `LL`,`LR`,`LP`,`RL`,`RR`,`RP`,`PL`,`PR ` 和 `PP`。 最后,一次遍历后的 $walk$ 的总值是该次遍历中所有可能的遍历顺序的每一步所形成的 $walk$ 的值的总和。 计算给定遍历顺序后的 $walk$ 的总值。

输入格式

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

输出格式

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

说明/提示

#### 数据规模与约定 - 对于 $30\%$ 的数据,保证输入的字符串中无 `*` 字符。 - 对于 $50\%$ 的数据,保证输入的字符串中至多有三个 `*` 字符。 - 对于 $100\%$ 的数据,保证输入字符串长度小于 $10000$,字符串的每一位只可能是 `L`,`R`,`P`,`*`。 #### 说明 - #### 题目译自 [COCI2008-2009](https://hsin.hr/coci/archive/2008_2009/) [CONTEST #2](https://hsin.hr/coci/archive/2008_2009/contest2_tasks.pdf) SETNJA,译者 @[mnesia](https://www.luogu.com.cn/user/115711)。