小球下落 Dropping Balls
暂无测试数据。
小球下落 Dropping Balls
题面翻译
许多的小球一个一个的从一棵满二叉树上掉下来组成一个新满二叉树,每一时间,一个正在下降的球第一个访问的是非叶子节点。然后继续下降时,或者走右子树,或者走左子树,直到访问到叶子节点。
决定球运动方向的是每个节点的布尔值。最初,所有的节点都是 FALSE
,当访问到一个节点时,如果这个节点是 FALSE
,则这个球把它变成 TRUE
,然后从左子树走,继续它的旅程。如果节点是TRUE
,则球也会改变它为 FALSE
,而接下来从右子树走。满二叉树的标记方法如下图。
因为所有的节点最初为 FALSE
,所以第一个球将会访问节点 \(1\),节点 \(2\) 和节点 \(4\),转变节点的布尔值后在在节点 \(8\) 停止。第二个球将会访问节点 \(1、3、6\),在节点 \(12\) 停止。明显地,第三个球在它停止之前,会访问节点 \(1、2、5\),在节点 \(10\) 停止。
现在你的任务是,给定新满二叉树的深度 \(d\) 和下落的小球的编号 \(i\) ,可以假定 \(i\) 不超过给定的新满二叉树的叶子数,写一个程序求小球停止时的叶子序号 \(p\)。
感谢@一棵线段树 提供的翻译
【注:英文题面中 \(i\) 为 \(I\) 】
题目描述
输入格式
输出格式
样例 #1
样例输入 #1
5
4 2
3 4
10 1
2 2
8 128
-1
样例输出 #1
12
7
512
3
255
信息
- ID
- 1001
- 难度
- (无)
- 分类
- (无)
- 标签
- (无)
- 递交数
- 0
- 已通过
- 0
- 通过率
- ?
- 上传者