6_6 小球下落(UVa679)<完全二叉樹編號>


有K個球從一完整二叉樹(fully binary tree,FBT)的樹根(root)一個一個往下掉。當這個球遇到非終端節點時,可能往左子樹跑,也可能往右子樹跑,如此直到這顆球到達終端節點(也就是樹葉)為止。至於在非終端節點時球該往左或往右的決定乃是由2個值true,false來控制的。如果這非終端節點的現在的值為false,則球來的時候會往左子樹走,但是這個值會變為true。如果這非終端節點的現在的值為true,則球來的時候會往右子樹走,但是這個值會變為false。請注意:一開始時所有非終端節點的值均為false。另外,在完整二叉樹中所有的節點被依序編號,從上(深度= 1)到下,由左到右。請參考下圖。

舉例來說,上面的圖為深度為4的完整二叉樹。第一顆球往下掉會經過節點1、2、4最后落在節點8中。第二顆球往下掉則會經過節點1、3、6最后落在節點12中。第三顆球往下掉會經過節點1、2、5最后落在節點10中。
給你完整二叉樹的深度D以及落下的第I個球,請你寫一個程序算出第I個球落在終端節點的編號。

Input
輸入的第一列有一個整數,代表以下有幾組測試數據。
每組測試數據一列有2個整數D,I(2 <= D <= 20,1 <= I <= 524288)。你可以假設I不會超過終端節點的數目。
Output
對每組測試數據輸出一列,第I個球落在終端節點的編號。

Sample Input
5
4 2
3 4
10 1
2 2
8 128
-1


Sample Output
12
7
512
3
255

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM