国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

UVA 679 Dropping Balls (二叉樹的編號)

2019-11-08 03:07:26
字體:
來源:轉載
供稿:網友

https://vjudge.net/PRoblem/UVA-679

A number ofKballs are dropped one by one from the root of a fully binary tree structure FBT. Eachtime the ball being dropped first visits a non-terminal node. It then keeps moving down, either followsthe path of the left subtree, or follows the path of the right subtree, until it stops at one of the leafnodes of FBT. To determine a ball’s moving direction a flag is set up in every non-terminal node withtwo values, eitherfalSEOrtrue. Initially, all of the flags arefalse. When visiting a non-terminal nodeif the flag’s current value at this node isfalse, then the ball will first switch this flag’s value, i.e., fromthefalseto thetrue, and then follow the left subtree of this node to keep moving down. Otherwise,it will also switch this flag’s value, i.e., from thetrueto thefalse, but will follow the right subtree ofthis node to keep moving down. Furthermore, all nodes of FBT are sequentially numbered, starting at1 with nodes on depth 1, and then those on depth 2, and so on. Nodes on any depth are numberedfrom left to right.

For example, Fig. 1 represents a fully binary tree of maximum depth 4 with the node numbers 1,2, 3, ..., 15. Since all of the flags are initially set to befalse, the first ball being dropped will switchflag’s values at node 1, node 2, and node 4 before it finally stops at position 8. The second ball beingdropped will switch flag’s values at node 1, node 3, and node 6, and stop at position 12. Obviously,the third ball being dropped will switch flag’s values at node 1, node 2, and node 5 before it stops atposition 10.

Fig. 1: An example of FBT with the maximum depth 4 and sequential node numbers.

Now consider a number of test cases where two values will be given for each test. The first value isD, the maximum depth of FBT, and the second one is I, theI-th ball being dropped. You may assumethe value ofIwill not exceed the total number of leaf nodes for the given FBT.

Please write a program to determine the stop positionPfor each test case.For each test cases the range of two parametersDandIis as below:

Input

Containsl+ 2lines.

2≤D≤20,and1≤I≤524288.

Line 1lthe number of test casesLine 2 D1I1test case #1, two decimal numbers that are separated by one blank...Line k+1DkIktest case #kLinel+1DlIltest case #lLinel+ 2-1a constant ‘-1’ representing the end of the input file

Output

Containsllines.

Line 1...Linek...Linel

the stop positionPfor the test case #1the stop positionPfor the test case #kthe stop position Pfor the test case #l

Sample Input

5

4 2

3 4

10 1

2 2

8 128

-1

Sample Output

12

7

512

3

255 

思路:盲目模擬會超時,要分析小球的個數和小球移動方向的關系。當小球個數為奇數時,小球向左移動,偶數是向右移動。

import java.util.Arrays;import java.util.Scanner;public class Main {	public static void main(String[] args) {		Scanner scan = new Scanner(System.in);		int t = scan.nextInt();		while(t--!=0){			int d = scan.nextInt();			if(d==-1)				break;			int i = scan.nextInt();			int k = 1;			for(int m = 0;m<d-1;m++){				if(i%2==1){					k = 2*k;					i = (i+1)/2;				}else{					k = 2*k+1;					i = i/2;				}			}			System.out.println(k);		}	}}


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 平乡县| 澄城县| 高要市| 红河县| 通许县| 西城区| 安泽县| 竹溪县| 新竹市| 兰坪| 化德县| 囊谦县| 南京市| 财经| 富源县| 留坝县| 大丰市| 尼勒克县| 章丘市| 香港| 察雅县| 石渠县| 喀喇| 呼和浩特市| 灵武市| 松阳县| 德江县| 米林县| 江达县| 苏尼特左旗| 乾安县| 大荔县| 满城县| 柘荣县| 黄骅市| 鄱阳县| 宝清县| 白山市| 南涧| 乐业县| 凉城县|