2127: 小Y游历二叉树
内存限制:256 MB
时间限制:1.000 S
评测方式:文本比较
命题人:
提交:0
解决:0
题目描述
有一棵二叉树,我们定义如下:
每个结点都有两个孩子:左孩子与右孩子;
如果结点的值为整数X,那么左孩子的值为2X,右孩子的值为2X+1;
根的值定义为1。
现在,小Y同学在这棵二叉树上模拟步行。步行时由大写字母L,R,P来描述:
字母L表示走到左孩子上;
字母R表示走到右孩子上;
字母P表示停留。
步行结束时所在的结点的值即是步行的值,例如:LRP的值是5,RPP的值是3。 步行过程用一段包含字符L,R,P和*的串表示,*则可以表示三种移动的任意一种。 例如,L*R包含LLR,LRR和LPR。 **包含LL,LR,LP,RL,RR,RP,PL,PR和PP。 最后,步行过程的代价是所有符合所给模式的步行方案的和(各方案最终到达点的数值)。现在,小Y同学就请你编程帮他计算出答案。
每个结点都有两个孩子:左孩子与右孩子;
如果结点的值为整数X,那么左孩子的值为2X,右孩子的值为2X+1;
根的值定义为1。
现在,小Y同学在这棵二叉树上模拟步行。步行时由大写字母L,R,P来描述:
字母L表示走到左孩子上;
字母R表示走到右孩子上;
字母P表示停留。
步行结束时所在的结点的值即是步行的值,例如:LRP的值是5,RPP的值是3。 步行过程用一段包含字符L,R,P和*的串表示,*则可以表示三种移动的任意一种。 例如,L*R包含LLR,LRR和LPR。 **包含LL,LR,LP,RL,RR,RP,PL,PR和PP。 最后,步行过程的代价是所有符合所给模式的步行方案的和(各方案最终到达点的数值)。现在,小Y同学就请你编程帮他计算出答案。
输入
输入一行,即一个描述步行的字符串,只包含字符:L,R,P,*。
输出
输出一行一个数,即所有符合所给步行方案的和。
样例输入 复制
L*R
样例输出 复制
25
提示
数据规模:
对于30%的数据,保证字符串中没有*;
对于50%的数据,保证字符串中*最多只有3个;
对于全部的数据,保证字符串长度不超过10000。