UVa679 完全二叉樹編號

2021-08-15 09:21:26 字數 774 閱讀 8034

這題我也是用了兩種方法,第一種比較常規,但超時,第二種比較討巧

運用完全二叉樹的性質,對於結點k,左子結點編號2k,右子結點編號2k+1,用乙個陣列表示當前每個結點狀態,然後模擬每個小球的下落過程

#include 

using

namespace

std;

const

int maxdeep = 20;

int main()

else

}//cout << endl;

}cout

<< pos << endl;}}

system("pause");

return

0;}

因為乙個結點的狀態只有兩種,所以可以由根節點開始計算最後一次小球i所走的路徑,如果i%2=0,則最後乙個球是第i/2個走到右子樹的小球,令i=i/2;如果i為奇數,則最後乙個球是第(i

+1)/

2 (i+

1)/2

個走到左子樹的小球,令i=

(i+1

)/2 i=(

i+1)

/2

#include

using

namespace

std;

int main()

else

}cout

<< pos << endl;}}

system("pause");

return

0;}

UVa 679 小球下落 二叉樹的編號

在結點1處放乙個小球,它會往下落。每個內結點上都會有乙個開關,初始全部關閉,當每次有小球落到乙個開關上時,狀態都會改變。當小球到達乙個結點是,如果結點上的開關關閉,則往左走,否則往右走,直到走到葉子的結點,如圖。分析 對於乙個結點k,其左結點和右結點分別為2k和2k 1。小球落到結點處,先改變,後選...

UVa679小球下落(二叉樹的編號)

樹是n個元素的有限集合,不再是序列,其中 n 0 樹可以看成無共享純廣義表。二叉樹的3個要素,根結點,左子樹和右子樹。二叉樹不是樹,樹的兩個要素是根結點和子樹森林。無論線性結構還是樹形結構,第乙個元素都沒有前驅。線性結構的最後乙個元素都沒有後繼,樹形結構有多個葉子結點,都沒有後繼。對於中間的一般元素...

二叉樹uva 679(做滿二叉樹的題目的思路)

題目連線 題目大意思是給定一顆滿二叉樹,球經過乙個節點往左數走之後就要往右樹走,先衝左樹開始走,下一顆經過這個節點的球往右樹走 這道題參考紫書。如果按照順序模擬的話會超時。但是這道題用二叉樹來做的,樹的題目有點類似遞迴,從樹節點到子樹後,子樹又成了樹節點,就只要考慮每次是節點和子數的關係。比如這道題...