当前位置:网站首页>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 73
Sample 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
边栏推荐
- Splunk configuration 163 mailbox alarm
- [yolov5.yaml parsing]
- Design of music box based on assembly language
- MySQL multi table operation
- Tabbar configuration at the bottom of wechat applet
- Halcon 模板匹配实战代码(一)
- Seven ways to achieve vertical centering
- JS for循环 循环次数异常
- byte2String、string2Byte
- Pytorch weight decay and dropout
猜你喜欢
One article tells the latest and complete learning materials of flutter
[deploy pytoch project through onnx using tensorrt]
Linux安装部署LAMP(Apache+MySQL+PHP)
Principle of persistence mechanism of redis
[loss functions of L1, L2 and smooth L1]
Master the new features of fluent 2.10
Reinforcement learning - learning notes 3 | strategic learning
Why learn harmonyos and how to get started quickly?
Automated test lifecycle
Tabbar configuration at the bottom of wechat applet
随机推荐
Codeforces Round #804 (Div. 2)
Which domestic cloud management platform manufacturer is good in 2022? Why?
Video networkstate property
What is the difference between canvas and SVG?
Use and install RkNN toolkit Lite2 on itop-3568 development board NPU
How can beginners learn flutter efficiently?
【ijkplayer】when i compile file “compile-ffmpeg.sh“ ,it show error “No such file or directory“.
Wireless WiFi learning 8-channel transmitting remote control module
[loss functions of L1, L2 and smooth L1]
Matlab struct function (structure array)
Is investment and finance suitable for girls? What financial products can girls buy?
自动化测试生命周期
GPS数据格式转换[通俗易懂]
MySQL data table operation DDL & data type
How to make your products as expensive as possible
语义分割实验:Unet网络/MSRC2数据集
Intern position selection and simplified career development planning in Internet companies
【主流Nivida显卡深度学习/强化学习/AI算力汇总】
查看rancher中debug端口信息,并做IDEA Remote Jvm Debug
MySQL installation, Windows version