当前位置:网站首页>POJ-2499 Binary Tree
POJ-2499 Binary Tree
2022-07-05 12:14:00 【Full stack programmer webmaster】
Binary Tree
Time Limit: 1000MS | Memory Limit: 65536K | |
|---|---|---|
Total Submissions: 5211 | Accepted: 2420 |
Description
Background Binary trees are a common data structure in computer science. In this problem we will look at an infinite binary tree where the nodes contain a pair of integers. The tree is constructed like this:
- The root contains the pair (1, 1).
- If a node contains (a, b) then its left child contains (a + b, b) and its right child (a, a + b)
Problem Given the contents (a, b) of some node of the binary tree described above, suppose you are walking from the root of the tree to the given node along the shortest possible path. Can you find out how often you have to go to a left child and how often to a right child?
Input
The first line contains the number of scenarios. Every scenario consists of a single line containing two integers i and j (1 <= i, j <= 2*10 9) that represent a node (i, j). You can assume that this is a valid node in the binary tree described above.
Output
The output for every scenario begins with a line containing “Scenario #i:”, where i is the number of the scenario starting at 1. Then print a single line containing two numbers l and r separated by a single space, where l is how often you have to go left and r is how often you have to go right when traversing the tree from the root to the node given in the input. Print an empty line after every scenario.
Sample Input
3
42 1
3 4
17 73Sample Output
Scenario #1:
41 0
Scenario #2:
2 1
Scenario #3:
4 6 1 /*
2 The question : root (a,b), The left child is (a+b,b), The right child is (a,a+b)
3 Given (m,n), The initial root is (1,1), from (1,1) To (m,n) You need to walk to the left sub tree several times ,
4 Walk to the right sub tree several times .
5 Ideas : Converse thinking , from (m,n) To (1,1).
6 Given (m,n), Beg his father , If m>n, Then his father is (m-n,n),
7 otherwise (m,n-m).
8 Code 1 : ----TLE
9 #include <iostream>
10
11 using namespace std;
12
13 int main()
14 {
15 int T, a, b, lcnt, rcnt;
16 cin >> T;
17 for(int i = 1; i <= T; ++i)
18 {
19 cin >> a >> b;
20 lcnt = rcnt = 0;
21 while(a != 1 || b != 1)
22 {
23 if(a >= b)
24 {
25 ++lcnt;
26 a -= b;
27 }
28 else
29 {
30 ++rcnt;
31 b -= a;
32 }
33 }
34 cout << "Scenario #" << i << ':' << endl;
35 cout << lcnt << ' ' << rcnt << endl <<endl;
36 }
37 return 0;
38 }
39
40 Code 2 :
41 Use division instead of subtraction , The quotient obtained is the number of times to go left , final m=m%n.
42 n>m And so on .
43 Here's the thing to watch out for :
44 If m>n,m%n == 0 What do I do ? Because root (1,1) There can be no 0 There is , So special treatment :
45 frequency :m/n-1;m=1
46 */
47 #include <iostream>
48
49 using namespace std;
50
51 int main()
52 {
53 int T, a, b, lcnt, rcnt;
54 cin >> T;
55 for(int i = 1; i <= T; ++i)
56 {
57 cin >> a >> b;
58 lcnt = rcnt = 0;
59 while(a != 1 || b != 1)
60 {
61 if(a >= b)
62 {
63 if(a % b)
64 {
65 lcnt += a/b;
66 a %= b;
67 }
68 else
69 {
70 lcnt += a/b-1;
71 a = 1;
72 }
73 }
74 else
75 {
76 if(b % a)
77 {
78 rcnt += b/a;
79 b %= a;
80 }
81 else
82 {
83 rcnt += b/a-1;
84 b = 1;
85 }
86 }
87 }
88 cout << "Scenario #" << i << ':' << endl;
89 cout << lcnt << ' ' << rcnt << endl <<endl;
90 }
91 return 0;
92 }Publisher : Full stack programmer stack length , Reprint please indicate the source :https://javaforall.cn/110203.html Link to the original text :https://javaforall.cn
边栏推荐
- Xi IO flow
- yolov5目標檢測神經網絡——損失函數計算原理
- Video networkstate property
- How to make your products as expensive as possible
- 想问问,如何选择券商?在线开户是很安全么?
- Pytorch softmax regression
- vscode快捷键
- 【SingleShotMultiBoxDetector(SSD,单步多框目标检测)】
- Codeforces Round #804 (Div. 2)
- Want to ask, how to choose a securities firm? Is it safe to open an account online?
猜你喜欢

Pytorch MLP

Four operations and derivative operations of MATLAB polynomials

Select drop-down box realizes three-level linkage of provinces and cities in China

One article tells the latest and complete learning materials of flutter
![[cloud native | kubernetes] actual battle of ingress case (13)](/img/1a/9404f6dcedd15827fa45f8f6f4c093.png)
[cloud native | kubernetes] actual battle of ingress case (13)

Sentinel sentinel mechanism of master automatic election in redis master-slave

嵌入式软件架构设计-消息交互

Mmclassification training custom data

Intern position selection and simplified career development planning in Internet companies

mysql拆分字符串做条件查询
随机推荐
The solution of outputting 64 bits from printf format%lld of cross platform (32bit and 64bit)
Tabbar configuration at the bottom of wechat applet
16 channel water lamp experiment based on Proteus (assembly language)
Swift - add navigation bar
互联网公司实习岗位选择与简易版职业发展规划
[untitled]
1 plug-in to handle advertisements in web pages
What is the difference between canvas and SVG?
What is digital existence? Digital transformation starts with digital existence
Read and understand the rendering mechanism and principle of flutter's three trees
The most comprehensive new database in the whole network, multidimensional table platform inventory note, flowus, airtable, seatable, Vig table Vika, flying Book Multidimensional table, heipayun, Zhix
强化学习-学习笔记3 | 策略学习
【yolov5.yaml解析】
July Huaqing learning-1
多表操作-自关联查询
How to clear floating?
只是巧合?苹果 iOS16 的神秘技术竟然与中国企业 5 年前产品一致!
[HDU 2096] 小明A+B
MySQL view
The survey shows that traditional data security tools cannot resist blackmail software attacks in 60% of cases