九度OJ 1113 二叉樹

2021-06-21 02:33:43 字數 840 閱讀 1801

題目1113:二叉樹

時間限制:1 秒

記憶體限制:32 兆

特殊判題:否

提交:2599

解決:778

題目描述:如上所示,由正整數1,2,3……組成了一顆特殊二叉樹。我們已知這個二叉樹的最後乙個結點是n。現在的問題是,結點m所在的子樹中一共包括多少個結點。比如,n = 12,m = 3那麼上圖中的結點13,14,15以及後面的結點都是不存在的,結點m所在子樹中包括的結點有3,6,7,12,因此結點m的所在子樹中共有4個結點。

輸入:輸入資料報括多行,每行給出一組測試資料,包括兩個整數m,n (1 <= m <= n <= 1000000000)。最後一組測試資料中包括兩個0,表示輸入的結束,這組資料不用處理。

輸出:對於每一組測試資料,輸出一行,該行包含乙個整數,給出結點m所在子樹中包括的結點的數目。

樣例輸入:

3 12

0 0
樣例輸出:

4
題目不難,不需要建樹,直接按層來。

#include #include #include #include using namespace std;

int main()

if(i==0)//如果m、n在同一層

count0=1;

else

printf("%d\n",count0);

}return 0;

}

九度OJ 1113 二叉樹

做本題的時候,第一次用思路最簡單但是時空複雜度較差的遞迴去遍歷其子樹,結果tle。於是乎只能改用數學計算的方法,去逐層累加。故本題實際上考察點是 完全二叉樹節點個數的計算 題目描述 如上所示,由正整數1,2,3 組成了一顆特殊二叉樹。我們已知這個二叉樹的最後乙個結點是n。現在的問題是,結點m所在的子...

九度OJ 1113 二叉樹

題目描述 如上所示,由正整數1,2,3 組成了一顆特殊二叉樹。我們已知這個二叉樹的最後乙個結點是n。現在的問題是,結點m所在的子樹中一共包括多少個結點。比如,n 12,m 3那麼上圖中的結點13,14,15以及後面的結點都是不存在的,結點m所在子樹中包括的結點有3,6,7,12,因此結點m的所在子樹...

九度OJ1184二叉樹

題目描述 編乙個程式,讀入使用者輸入的一串先序遍歷字串,根據此字串建立乙個二叉樹 以指標方式儲存 例如如下的先序遍歷字串 abc de g f 其中 表示的是空格,空格字元代表空樹。建立起此二叉樹以後,再對二叉樹進行中序遍歷,輸出遍歷結果。輸入 輸入包括1行字串,長度不超過100。輸出 可能有多組測...