找第乙個父節點

2021-10-03 14:38:31 字數 839 閱讀 6252

題目描述

time limit: 1000 ms

memory limit: 256 mb

1/ \

2 3/ \ / \

4 5 6 7

/\ /\ /\ /\

如上圖所示,由正整數 1, 2, 3, …組成了一棵無限大的二叉樹。從某乙個結點到根結點(編號是1的結點)都有一條唯一的路徑,比如從5到根結點的路徑是(5, 2, 1),從4到根結點的路徑是(4, 2, 1),從根結點1到根結點的路徑上只包含乙個結點1,因此路徑就是(1)。對於兩個結點x和y,假設他們到根結點的路徑分別是(x1, x2, … ,1)和(y1, y2,…,1),那麼必然存在兩個正整數i和j,使得從xi 和yj 開始,有xi = yj,xi + 1 = yj + 1,xi + 2 = yj + 2,…

現在的問題就是,給定x和y,要求他們的公共父節點,即xi(也就是 yj)。

輸入輸出格式

輸入描述:

輸入包含多組資料,每組資料報含兩個正整數x和y(1≤x, y≤2^31-1)。

輸出描述:

對應每一組資料,輸出乙個正整數xi,即它們的首個公共父節點。

輸入輸出樣例

輸入樣例#:

複製10 4

輸出樣例#:複製2

這個題目很唬人,說了一大堆,其實就是找第乙個父節點,看題目是層次遍歷輸入,則父節點 = 子節點/2,找最近的父節點,交替除2,知道兩值相等,說明合二為一找到父節點,

#include

using

namespace std;

intmain()

cout<}return0;

}

兩個鍊錶找第乙個公共節點

題目 輸入兩個鍊錶,找出它們的第乙個公共結點 思想 設兩個鍊錶分別為p,q.將p拼接到q之後,將q拼接到p之後,得到兩個新的等長鍊錶p1,q1.在從頭至尾依次對比兩鍊錶結點 第乙個相等的點即為所要找的結點 for examp p 1234 q 98764 拼接之後為 p1 123498764 q1 ...

python第乙個程式設計 第乙個 Python 程式

簡述 安裝完 python 後,windows 中 開始選單或安裝目錄下就會有 idle 開發 python 程式的基本 ide 整合開發環境 幫助手冊 模組文件等。linux 中 只需要在命令列中輸入 python 命令即可啟動互動式程式設計。互動式程式設計 互動式程式設計不需要建立指令碼檔案,是...

ROS 1 3 執行第乙個節點

在開始之前 需要先roscore 啟動ros 可以輸入 rosnode list 一下,看一下有哪些節點在執行。在沒有啟動任何節點前可以 看到有rosout這個節點在執行。然後啟動乙個節點 rosrun turtlesim turtlesim node 啟動乙個節點 最基本的乙個指令 rosrun ...